我尝试编写以下 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 并且结果不正确,因为每个 OR 不允许有多个 AND!
结果是(对于我的数据):
textOrders.size() == 6
textOrders.totalCount == 2
结果应该是(对于我的数据):
textOrders.size() == textOrders.totalCount
有什么想法可以解决这个问题或解决问题吗?结果的大小怎么会大于totalCount?我为此添加了一个 jira 问题:http: //jira.grails.org/browse/GRAILS-7783