3
A
回答
0
Hibernate中的聚合直接通過SQL中的聚合直接映射到相應的組,因此如果您直接在SQL中編寫查詢,則答案基於您將應用於布爾列的SQL聚合函數。
Projections類中的基本聚合函數本質上通常是數字。你可以使用count,但是這隻會計算組中有多少行具有非空值,這似乎不是很有用。我所知道的任何聚合函數都沒有產生布爾值,所以你可能不得不做一些自定義的事情。
通過擴展AggregateProjection類,您可以提供用於投影的自定義SQL子句。通常,這將用於訪問特定於平臺的聚合函數(例如STDDEV_POP),但您可以提供任何可用於SQL查詢的有效SQL片段。例如,如果你想實現一個邏輯OR(true,如果該組中的任何行有一個真正的價值),你可以使用類似
if(sum(if(boolean_column,1,0))>0,true,false)
從您的自定義投影toSqlString方法的返回值。然後,您將使用此自定義類,就像使用Projections類中的任何標準選項一樣。
這個類的實現有點棘手,因爲您必須確保您在字符串中使用的值是正確的Hibernate列別名,這很容易從AggregateProjection的受保護getColumnAlias方法中獲取。
相關問題
- 1. 休眠設置布爾值
- 2. 休眠時的值類型
- 3. 如何聚合布爾列
- 4. 用休眠映射布爾值
- 5. 映射休眠布爾值SMALLINT PostgreSQL的
- 6. 休眠類型的區別:布爾,yes_no,true_false
- 7. 布爾類型值
- 8. 休眠需要值來保存孩子
- 9. 需要布爾值isTouched()
- 10. 我需要線程鎖定值類型(布爾尤其是)
- 11. 休眠 - 複合值集合
- 12. BeginTransaction需要休眠嗎?
- 13. 休眠需要manytomany關係
- 14. Scala的類型不匹配;發現:需要布爾:列表[INT]
- 15. 休眠投影與聚合函數
- 16. 聚集在休眠/ JPA
- 17. PostgreSQL:從布爾值更改列類型
- 18. 休眠 - 在實體中嵌入聚合列
- 19. 休眠注入類類型
- 20. 布爾值在這裏需要
- 21. 需要在html中發送布爾值
- 22. 如何在休眠狀態下設置布爾值?
- 23. 休眠PostgreSQL的布爾問題
- 24. 找不到布爾吸氣休眠
- 25. 休眠中的實體和值類型
- 26. 嘲笑休眠自定義值類型
- 27. 休眠無法確定列的類型
- 28. 休眠+ H2不更新yes_no類型列
- 29. 休眠:用戶類型 - nullSafeSet - 列長度
- 30. 休眠列類型問題(MySQL的)