|
Spring Data - SQL генерируемый в runtime
|
|||
---|---|---|---|
#18+
Дано: некий интерфейс XYZ extends JpaRepository. В нем есть набор запросов с аннотацией @Query, которые автоматически Spring Data генерируются. А как надо прописать динамический запрос? Только отдельным интерфейсом, где это будет реализовано реализацией явно или все-таки есть какой-то способ указать, что запрос придет во время исполнения? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 14:17 |
|
Spring Data - SQL генерируемый в runtime
|
|||
---|---|---|---|
#18+
Щиче, Неизвестный запрос вернет неизвестно какие данные.. Маппинг и использование неизвестно чего не возможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 14:25 |
|
Spring Data - SQL генерируемый в runtime
|
|||
---|---|---|---|
#18+
CriteriaQuery, Specification ? https://spring.io/blog/2011/04/26/advanced-spring-data-jpa-specifications-and-querydsl/ ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 14:54 |
|
Spring Data - SQL генерируемый в runtime
|
|||
---|---|---|---|
#18+
llemingCriteriaQuery, Specification ? https://spring.io/blog/2011/04/26/advanced-spring-data-jpa-specifications-and-querydsl/ Предыдущий программист сделал как раз по вашему учебнику. Только мне это не нравится в силу разных причин. Самая главная, что это не работает :) Когда вызывают поиск, то любой критерий по отдельности работает. Но если их несколько и есть критерий на exists подзапроса, то где-то в недрах Hibernate рождается невразумительный NullPointerException. Отладчик проходит всю Specification полностью и спотыкается уже при запросе. Ну и выглядит это, скажем так, невразумительно. Вот кусок кода, который портит многокритериальный запрос: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Самое интересное, что запрос с этим тоже работает, если нет других критериев. Сыпется сразу после возврата из метода. Моя задача как раз исправить косяк. Я хочу написать запрос на Native SQL с заранее определенными полями в select, но динамически меняющиеся условия поиска. Если возможно использовать в Criteria API SQL подзапросы в секции Where - это тоже вариант. Но этого я не нашел в сети. Можно вызвать какие-то SQL функции, но это уже ничем не лучше переписывания на чистом SQL полностью. Поэтому можно ли иметь динамический native SQL в автогенерируемом классе или надо делать отдельный интерфейс с реализацией? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 15:56 |
|
Spring Data - SQL генерируемый в runtime
|
|||
---|---|---|---|
#18+
Щиче, вместо интерфейса XYZ, сделайте класс, имплементите репозиторий, в классе используйте @Autowired jdbctemplate и далее используйте нативные запросы к базе во все поля. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 16:47 |
|
Spring Data - SQL генерируемый в runtime
|
|||
---|---|---|---|
#18+
ОзверинЩиче, вместо интерфейса XYZ, сделайте класс, имплементите репозиторий, в классе используйте @Autowired jdbctemplate и далее используйте нативные запросы к базе во все поля. Спасибо, так и сделаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 22:24 |
|
|
start [/forum/topic.php?fid=59&gotonew=1&tid=2121685]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 334ms |
total: | 488ms |
0 / 0 |