我该怎么做这个简单的搜索?

时间:2010-04-19 19:28:49

标签: hibernate-search

我有一个使用Hibernate构建的Web应用程序。 在一个页面中,我有一个带有5个输入的提交按钮

  • FIELD1
  • FIELD2
  • 字段3
  • field4中
  • 字段5

当所有输入都为空时,我进行简单的查询

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

但是当我至少有一个输入不为null时,我必须创建搜索查询。比方说,field1不是null:

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

但是我需要检查每一个输入,我需要根据这个东西创建查询字符串。

创建搜索查询的最智能,最简单的方法是什么?

1 个答案:

答案 0 :(得分:2)

您可以改为使用Criteria-Query:

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

然后根据每个字段为您的查询添加条件:

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

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

...

当然,只有使用本机hibernate API而不是JPA-API才能使用。