我尝试将以下SQL语句编写为标准:
SELECT * FROM foo WHERE (a=1 AND b=1) OR (a=2 AND b=2) OR (a=3 AND b=4)
def textOrderCriteria = TextOrder.createCriteria()
textOrders = textOrderCriteria.list(max: 20, offset: 0) {
or {
and {
eq('a',1)
eq('b',1)
}
and {
eq('a',2)
eq('b',2)
}
and {
eq('a',3)
eq('b',4)
}
}
}
但是会破坏totalCount,结果不是corect,因为不允许每个OR多个AND!
结果是(对于我的数据):
textOrders.size() == 6
textOrders.totalCount == 2
结果应该是(对于我的数据):
textOrders.size() == textOrders.totalCount
任何解决此问题或解决方法的想法?怎么可能是结果的大小大于totalCount? 我为此添加了一个jira问题:http://jira.grails.org/browse/GRAILS-7783
答案 0 :(得分:0)
抱歉,我不能将此作为评论发布(不允许!),但您可以尝试设置
loggingSql = true
在config.groovy的datasource块中标记并发布或检查SQL hibernate正在生成?这可能会为您提供有关正在发生的事情的线索。
谢谢,
吉姆。