2013-04-25 108 views
2

我想從Hibernate中的查詢中獲取列表,但沒有重複的元素。在休眠中取不重複的行

目前,我有這樣的:

SELECT t FROM Table t join fetch t.list tl WHERE tl.userid=:userid AND tl.tableid=t.id 

這工作好!這個問題的,它返回相同的對象多次,用戶標識其TL

因此,可以說用戶id其發現3次在TL我得到:

T 
    TL1 
    TL2 
    TL3 
T 
    TL1 
    TL2 
    TL3 
T 
    TL1 
    TL2 
    TL3 

,我想:

T 
    TL1 
T 
    TL2 
T 
    TL3 

或只有一個:

T 
    TL1 
    TL2 
    TL3 

我猜它可能在Hibernate中,但還沒有對其進行管理還。

在此先感謝

回答

1

寫足夠

SELECT distinct t FROM Table t join fetch t ....... 
     -----^------ 

HQL ORDER BY clause and DISTINCT clause將有助於進一步。

+0

這很簡單,力知道隱含的可能性是可能的。 謝謝 – 2013-04-25 10:03:16

+0

它直到我們知道它沒有那麼多:)碰巧每個人都樂意幫助你:) – 2013-04-25 10:04:10

0

爲什麼你沒有再使用DISTINCT

SELECT DISTINCT t FROM Table t join fetch t.list tl WHERE tl.userid=:userid 
AND tl.tableid=t.id 

它會給你造成不重複值

0

你也可以嘗試使用Criteria.DISTINCT_ROOT_ENTITY