0

我的 Entity 类有四个实例变量:

参考 ID、计费 ID、客户 ID 和配置文件 ID。

它们都是字符串变量。

我至少需要其中一个是强制性的。然后我将进行选择查询。

如果填充了多个值,那么我想将它们组合成“AND”条件,然后执行选择查询。即,如果填写了帐单 ID 和客户 ID,则选择 * from ... where billingID ="..." AND customerID = "..."

同样,如果填充了三个值,则三个变量之间应该存在“与”条件。

我有一个扩展 crud 存储库的存储库类。

除了编写多个查询方法(即 findByBillingID、findByBillingIDAndCustomerID 等)之外,还有更简单的方法吗?

4

1 回答 1

1

是的。您可以通过条件限制向查询添加不同的条件。它在功能上与使用 HQL 查询字符串相同,但它使用 API。因此,在您的情况下,您的代码可能如下所示:

String ref, billing, customer, profile;
//get the values for those here
Criteria crit = session.createCriteria(MyEntity.class);
if(ref != null){
    crit.addRestriction(Restrictions.equals("ref", ref));
}
if(billing != null){
    crit.addRestriction(Restrictions.equals("billing", billing));
}
//...etc
return crit.list();//returns your results
于 2018-02-14T17:35:55.387 回答