我想知道,如果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
替換。我沒有測試過上述內容,所以它可能充滿了錯誤,但希望能證明有一定的幫助。