|
|
|
Нужна консультация
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Нужен совет по реализации архитектуры расширенного поиска на сайте. Пользователю предоставляется десяток параметров которые передаются в контроллер в виде мапы. Основываясь на выбранных пользователем параметрах нужно составить sql запрос, который вернет контроллеру список товаров. Так как параметры заранее неизвестны нужен конструктор для динамического создания sql запроса. Как бы Вы реализовывали такой конструктор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2015, 18:08 |
|
||
|
Нужна консультация
|
|||
|---|---|---|---|
|
#18+
Полнотекстовый поиск точно не то? А так динамические запросы строятся легко и просто через 1) Hibernate/JPA Criteria API 2) QueryDSL, jOOQ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2015, 18:20 |
|
||
|
Нужна консультация
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, спасибо, но к сожалению не владею Hibernate, только jdbc. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2015, 18:24 |
|
||
|
Нужна консультация
|
|||
|---|---|---|---|
|
#18+
http://stackoverflow.com/questions/14051080/creating-jooq-query-dynamically http://www.programania.net/diseno-de-software/functional-trick-to-compose-conditions-in-jooq/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2015, 20:23 |
|
||
|
Нужна консультация
|
|||
|---|---|---|---|
|
#18+
AK1988Blazkowicz, спасибо, но к сожалению не владею Hibernate, только jdbc. Тогда в чем проблема? Либо 1) Пишешь "универсальный" запрос, со всеми возможными параметрами 2) Формируешь запрос на лету в виде строки В первом случае будет проблема оптимизации запроса Во втором о безопасности от "SQL-иньекций" нужно будет думать самому. А так, для динамических запросов действительно лучше использовать что-то вроде CriteriaAPI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2015, 06:09 |
|
||
|
Нужна консультация
|
|||
|---|---|---|---|
|
#18+
CriteriaAPI - Если таблица - одна - одно entity то будет что-то подобное : Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Если этого подхода не хватит ,то смотрите в сторону Apache Solr Да порог вхождения большой , но зато один раз нужно написать и все :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2015, 13:35 |
|
||
|
Нужна консультация
|
|||
|---|---|---|---|
|
#18+
Atum1CriteriaAPI - Если таблица - одна - одно entity Для нескольких таблиц, будет точно так же. Только их надо будет еще и JOIN'нить Atum1Если этого подхода не хватит ,то смотрите в сторону Apache Solr Да порог вхождения большой , но зато один раз нужно написать и все :) Вообще вещь "перпендикулярная". Ничего сложного нет. "Из коробки" там почти все уже настроено. Остается прописать откуда и что индексировать. Но для реляционных данных смысла особого нет, т.к. в БД индексация по "точным" данным лучше. А вот натравить на гигабайты документов милое дело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.06.2015, 14:13 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38990975&tid=2125255]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
150ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 455ms |

| 0 / 0 |
