【问题标题】:HQL concat functionHQL 连接函数
【发布时间】:2011-08-30 01:29:22
【问题描述】:
顾客{ 字符串客户名称 @OneToMany 设置用户; } 用户{ 字符串用户名; }

当我这样做时:

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

休眠不返回我预期的结果。

【问题讨论】:

  • CONCAT() 不会组合来自多个记录的值,而是来自每个记录的多个参数。一个例子: concat(firsname,' ',lastname) 可能会返回一个特定的记录,比如“John Doe”。

标签: java sql hibernate hql


【解决方案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;

【讨论】:

    猜你喜欢
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多