我正在尝试使用 GORM 查询以下 HQL:
MailMessage.executeQuery("toId, count(toId) from (SELECT toId, threadId FROM MailMessage as m WHERE receiveStatus = 'u' GROUP BY threadId, toId) as x group by x.toId")
问题是 count(toId)
是 MailMessage
中不存在的计算字段,并且我正在使用子查询。
我收到以下错误:java.lang.IllegalArgumentException:要遍历的节点不能为空!
理想情况下,我想使用通用的executeQuery 它将返回任何类型的数据。有这样的事吗?
最佳答案
我正在回答我自己的问题。做到这一点的唯一方法是执行原始 SQL 而不是使用 HQL。不幸的是,我无法弄清楚如何使用子查询和计算字段执行复杂的查询。
我在这里使用了这个例子:Grails query not using GORM
关于hibernate - 在 GORM 中查询计算字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4577379/