0

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

  • 字段1
  • 字段2
  • 字段3
  • 字段4
  • 字段5

当所有输入为空时,我做一个简单的查询

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

但是当我至少有一个不为空的输入时,我必须创建搜索查询。假设 field1 不为空:

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

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

创建搜索查询的最聪明、最简单的方法是什么?

4

1 回答 1

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))
}

...

当然,这只有在您使用本机休眠 API 而不是 JPA-API 时才有效。

于 2010-04-26T09:13:52.333 回答