2013-04-29 45 views
0

玉傢伙我終於堅持了格姆標準API的實現面臨這樣的問題:Grails標準:如何統計分組子查詢的結果?

我有這樣映射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' 
    } 
} 

我這兒所需要的是查找/過濾器在這個領域可能在

colA1colA2colA3colB1colB2

但我需要有效˚F蝕刻不同/分組的結果集的:

colA1colA2colA3

在相關聯的請求,用於分頁,我需要獲取:

  • 讀取值的計數
  • 限定的一部分過濾結果

問題在於組合計數和分組。如果我建立這樣的請求:

MyView.withCriteria({ 
    projections { 
     groupProperty('colA1') 
     groupProperty('colA2') 
     groupProperty('colA3') 
    } 

    // ... Restrictions on MyView properties 
}) 

您是否有一些技巧來獲得關聯結果的計數?我在Hibernate-criteria API上看到了很多限制,並且我沒有想法,所以我會非常感謝你的幫助! :-)

回答

0

好吧,所以我終於想通了我的問題,簡短的答案是:我不能。

事實是,我都需要將我的結果分組並計算這些結果。雖然在表現方面可怕,但這必須通過將「羣組」請求包裝select count(*)來完成。

但這裏是hibernate says文檔:

注意,只能出現在select或者where子句 HQL自查詢。

所以我需要的是不可能使用休眠

我解決了我的問題,更重要的變化意味着基於物化視圖的更好的模型化以避免災難性的性能問題。