我想知道,如果HQL可以处理查询,如下面的HQL查询LIKE
“找到像值‘ABC’或‘DEF’或者......在任一列1列2或表1或“
所以我有多个参数,我想要搜索两个通配符的任何参数值。
我做的Grails,如果最好想用的executeQuery功能,但不知道该怎么写一个。
我想知道,如果HQL可以处理查询,如下面的HQL查询LIKE
“找到像值‘ABC’或‘DEF’或者......在任一列1列2或表1或“
所以我有多个参数,我想要搜索两个通配符的任何参数值。
我做的Grails,如果最好想用的executeQuery功能,但不知道该怎么写一个。
可以应用任何HQL Expressions到您的查询。例如:
from Table1 where column1 like :param1 or column2 like :param2
你但是应用%
操作的参数本身。
您也可以使用GORM criteria builder与Hibernate criterion restrictions进行查询:
Table1.withCriteria {
like('column1', param1)
or {
like('column2', param2)
}
}
我推荐使用条件查询代替:
def criteria = Table1.createCriteria()
def results = criteria.listDistinct {
or {
or {
like('column1', "%abc%")
like('column1', "%def%")
}
or {
like('column2', "%abc%")
like('column2', "%def%")
}
}
}
如果你不这样做想排除重复项用list
替换。我没有测试过上述内容,所以它可能充满了错误,但希望能证明有一定的帮助。