|
Подскажите с 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&fpage=13&tid=2120722]: |
0ms |
get settings: |
7ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
24ms |
get topic data: |
4ms |
get forum data: |
1ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
others: | 285ms |
total: | 398ms |
0 / 0 |