休眠:如何使用 CONCAT 和GROUP_CONCAT

2022-09-04 21:14:36

如何在 HQL 查询中使用和?CONCAT()GROUP_CONCAT()


答案 1

关于:它的工作方式与MySQL完全相同(它连接字符串,它不是聚合函数)。concat

您可以将 sql 函数添加到配置中。通过这种方式,您假设底层数据库知道此功能,并将程序绑定到MySQLgroup_concat

import org.hibernate.cfg.Configuration; 
import org.hibernate.dialect.function.StandardSQLFunction;
import org.hibernate.type.StringType;

// ...
myConf.addSqlFunction("group_concat", new StandardSQLFunction("group_concat", new StringType()));

您还指示函数的输出是字符串。如果没有这个,当你的数字字段Hibernate将假设结果也是数字和崩溃。group_concat


答案 2

方言的子类

registerFunction("group_concat", new StandardSQLFunction("group_concat", Hibernate.STRING));

或使用 SQLFunctionTemplate


推荐