Как динамически генерировать SQL-запрос на основе выбора пользователя?
Единственная разница в том, что мне интересно увидеть решения, также использующие Java/JPA (+возможно, специальные расширения EclipseLink или Hibernate).
Мне нужно создать графический интерфейс , с помощью которого пользователи могут выбрать несколько атрибутов, которые будут использоваться для запроса базы данных для поиска подходящих людей. Я ищу идеи, как динамически генерировать запросы к базе данных в соответствии с выбором пользователя.
Запрос будет содержать несколько полей, но чтобы получить представление, я включу только три из них. приведенные ниже в качестве примера:
- Профессия – может быть от 0 до n строк занятий. Если указаны строки рода занятий, одна из них должна совпадать.
- Возраст – возраст может быть указан как:
- точное соответствие (30)
- диапазон (например, 30–40)
< li>меньше значения (-40) - больше значения (30-)
Параметр возраста в запросе является необязательным. Кроме того, пользователь может указать, является ли возраст обязательным параметром. Если это не требуется и в профиле человека нет возраста, возрастной критерий для этого человека игнорируется. - Рост – соответствует возрасту
Критерии не указаны:
Код: Выделить всё
select * from persons
Код: Выделить всё
select * from persons where occupation = 'dentist'
Код: Выделить всё
select * from persons where (occupation = 'dentist' or occupation = 'engineer')
Код: Выделить всё
select * from persons where age >= 30
Код: Выделить всё
select * from persons where (height is null or (height >= 30 and height = 30 and (height is null or (height >= 30 and height
Подробнее здесь: [url]https://stackoverflow.com/questions/2041312/how-to-dynamically-generate-sql-query-based-on-user-s-selections[/url]
Мобильная версия