2011-05-21 128 views
1
 
Customer{ 
    String customerName 
    @OneToMany 
    Set users; 
} 
User{ 
    String userName; 
} 

當我這樣做:HQL concat函數

select c.customerName as customerName ,concat(u.userName) as userNames from Customer c join c.users as u

休眠不返回的結果我的預期。

+4

你期待什麼? – Tahbaza 2011-05-21 02:00:12

+0

CONCAT()不會合並來自多個記錄的值,而是從每個記錄的多個參數中合併值。例如:concat(firsname,'',lastname)可能會返回特定記錄,如「John Doe」。 – Brian 2011-05-21 14:12:35

回答

-1

不幸的是,hibernate沒有一個組合字符串的SQL聚合函數。沒有標準的SQL聚合函數,所以每個數據庫都有它自己的。一個例子是NexusDB 3.x的LIST(),它在集合中編譯了一個以逗號分隔的非空值列表。

SELECT c.customerName as customerName , LIST(u.userName) as userNames 
FROM Customer c 
JOIN c.users as u 
GROUP BY c.customerName;