如何在使用限制时添加条件在休眠标准中

时间:2018-01-21 14:06:13

标签: java hibernate

我正在学习hibernate条件查询。我想使用hibernate条件查询进行搜索。 以下是我的搜索字段

搜索字段 Searching fields

这是我的搜索代码

def userList = userCriteria.list{
    and{    
        if(firstName) {
            like('firstName',firstName)
        }
        if(lastName) {
            like('lastName',lastName)
        }
       }
}

我面临的问题是仅使用firstName进行搜索时将lastName作为空字符串并且由于" AND" firstName和lastName之间的条件。它没有得到任何匹配的结果。现在我想添加条件,以便如果任何搜索字段为空或null,则它将不包含在查询中。 基本上我在grails工作所以在grails中这将实现这样的

SELECT <...>
FROM A.table1 t1 JOIN B.table2 t2 ON t2.column2 = t1.column1;

我想对hibernate条件查询做同样的事。

1 个答案:

答案 0 :(得分:0)

if (!Strings.isBlankOrNull(firstName)) {
    criteria.add(Restrictions.ilike("firstName", firstName));
}
if (!Strings.isBlankOrNull(lastName)) {
    criteria.add(Restrictions.ilike("lastName", lastName));
}

请注意,您正在学习https://imgur.com/a/Hnfcr。您最好学习标准的JPA标准API。