好的,我终于坚持使用面向此问题的GORM Criteria API实现:
我有一个像这样映射的Oracle视图:
class MyView implements Serializable {
Long idA
Long idB
Long colA1
String colA2
String colA3
String colB1
String colB2
static mapping = {
id composite: ['idA', 'idB'], generator: 'assigned'
}
}
我需要的是在
上搜索/过滤此域名 colA1
,colA2
,colA3
,colB1
,colB2
但我需要有效地获取不同的/分组的结果集:
colA1
,colA2
,colA3
在相关请求上,对于分页,我需要获取:
问题在于结合计数和分组。如果我建立这样的请求:
MyView.withCriteria({
projections {
groupProperty('colA1')
groupProperty('colA2')
groupProperty('colA3')
}
// ... Restrictions on MyView properties
})
您是否有一些技巧可以计算相关结果?我看到了Hibernate-criteria API的许多限制,而且我没有想法,所以我将非常感谢您的帮助! : - )
答案 0 :(得分:0)
好的,所以我终于找到了我的问题而简短的回答是:我做不到。
事实是,我都需要对结果进行分组并计算这些结果。虽然在性能方面很糟糕,但必须通过select count(*)
包装“组”请求来完成。
但这是hibernate says文档:
请注意,HQL子查询只能在select或where中出现 条款。
所以我需要的是不能使用hibernate 。
我通过更重的变化解决了我的问题,这意味着基于物化视图的更好的模型化,以避免灾难性的性能问题。