2016-07-04 33 views
6

我目前使用CriteriaBuilder獲得雙休眠結果。Hibernate CriteriaBuilder將多個行連接成一個

我有一個存儲事件ID的表和一個連接表,它存儲了多個具有到另一個表的ID的值。例如;

事件

ID .... 
--------- 
1123 
1124 
1125 

連接表

ID event_id tag_id 
---------------------- 
1 1124  2 
2 1124  3 
3 1123  6 
4 1123  7 

標籤

ID tag 
--------- 
1 Dance 
2 Hiphop 
... 

這顯然會導致雙重效果..例如。

eventID ... tag_id tag 
-------------------- 
1124  2  Hiphop 
1124  3  Dance 

是否有可能在hibernate的CriteriaBuilder中獲得像這樣的結果集;

eventID ... tag_id tag 
-------------------- 
1124  2,3  Hiphop, Dance 

我已經看到SQL Server本身的多個解決方案,但我找不到一個使用hibernate的CriteriaBuilder。

回答

6

我不知道任何使用CriteriaBuilder的解決方案。兩個選項可以工作。這些表似乎是一個Event實體和一個TAG之間的多對多關係。

  1. 在Event實體中使用@Formula註釋添加兩個字段。 @Formula註釋允許你在其中使用一些sql語句,並可以使用當前實體的參數。在公式內部,您可以使用一些SQL專有方法

  2. 當然,如果您在Event對象上有一個Tag對象集合,那麼您可以在Java中執行此操作。也許您已經考慮過了