|
Подскажите с mybatis (не найден параметр)
|
|||
---|---|---|---|
#18+
Вообщем не могу уловить логики Код: xml 1. 2. 3. 4.
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
вообще если в маппере есть @Param, то сущность "разматывается" т.е в запросе должно быть указано "#{a}" и "#{b}" (т.е. биндятся поля передаваемой сущности), если @Param нет то "#{someEntity.a}" и "${someEntity}" (биндится только сама сущность в методе) Это правило едино и справедливо в самом приложении (spring boot). В интеграционных тестах все интересней. Mybatis сам решает непонятно по какому правилу биндить параметры запроса. И непонятно как все таки заставить mybatis поступать единообразно. В тестах у mybatis мнение разделилось и некоторые методы в одном и том же маппере требуют указывать #{a} а некоторые #{someEntity.a} Т.е. либо не пишу тесты, либо тесты падают, либо тесты работают, но не работает приложение. Либо пишу разные мапперы для тестов и для приложения, но не забываю при изменении запросов в маппере приложения переносить их в копию маппера для тестов Пока склоняюсь к тому что логика подстановки меняется в зависимости от типа запроса (те. те в маппере указаны как statementType Callable) работают так же как в приложении, а вот insert (PreparedStatement) меняется от контекста по желанию mybatis ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2020, 13:18 |
|
Подскажите с mybatis (не найден параметр)
|
|||
---|---|---|---|
#18+
>В интеграционных тестах все интересней. Mybatis сам решает непонятно по какому правилу биндить параметры запроса Без примера этого интеграционного теста очень тяжело понять что не так. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2020, 13:36 |
|
|
start [/forum/topic.php?fid=59&msg=39987443&tid=2120722]: |
0ms |
get settings: |
21ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
101ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 205ms |
0 / 0 |