簡體   English   中英

Hibernate:如何使用CONCAT和GROUP_CONCAT

[英]Hibernate: how to use CONCAT and GROUP_CONCAT

如何在HQL查詢中使用CONCAT()GROUP_CONCAT()

關於concat :它與MySQL中的工作方式完全相同(它連接字符串,它不是聚合函數)。

您可以將group_concat作為sql函數添加到您的配置中。 這樣你就可以假設底層數據庫知道這個函數,並且你將程序綁定到MySQL

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()));

您還指出函數的輸出是一個字符串。 如果沒有這個,當你group_concat數字字段時,Hibernate會假設結果也是數字和崩潰。

如果您使用的是createSQLQuery,請將該列的addScalar用作String。

SQLQuery query = sessionObj.createSQLQuery("select group_concat(column1,column2) as mycolumn from some table group by someThing");
query.addScalar("mycolumn ", Hibernate.STRING);

是方言的子類

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

或使用SQLFunctionTemplate

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM