|
|
|
Подскажите с 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?desktop=1&fid=59&tid=2120722]: |
0ms |
get settings: |
10ms |
get forum list: |
10ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
179ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 484ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...