Как я могу сделать этот простой поиск? - PullRequest
0 голосов
/ 19 апреля 2010

У меня есть сборка веб-приложения с Hibernate. На одной странице у меня есть одна кнопка отправки с 5 входами

  • field1
  • field2
  • field3
  • Field4
  • Field5

Когда все входы нулевые, я делаю простой запрос

Query query = session.createQuery("from MyTable");

но когда у меня есть хотя бы один ввод не нуль, я должен создать поисковый запрос. Допустим, поле field1 не равно нулю:

Query query = session.createQuery("from MyTable where field1= :field1");
query.setParameter("field1", field1);

Но мне нужно проверить каждый вход и мне нужно создать строку запроса на основе этой вещи.

Какой самый умный и простой способ создания поискового запроса?

1 Ответ

2 голосов
/ 26 апреля 2010

Вместо этого вы можете использовать критерий-запрос:

Criteria criteria = hibernateSession.createCriteria(YourClass.class);

А затем добавьте критерии к вашему запросу на основе каждого поля:

if(fieldValue1 != null) {
    criteria.add(Restrictions.eq("FieldProperty1", fieldValue1))
}

if(fieldValue2 != null) {
    criteria.add(Restrictions.eq("FieldProperty2", fieldValue2))
}

...

Конечно, это будет работать только в том случае, если вы используете собственный API Hibernate вместо JPA-API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...