gpt4 book ai didi

java - 如何在 Hibernate HQL 中使用 CONCAT_WS()

转载 作者:行者123 更新时间:2023-11-29 00:15:11 26 4
gpt4 key购买 nike

要将多列合并为一列, I found one answer

SELECT id,CONCAT_WS(',', field_1, field_2, field_3, field_4) list
FROM `table`;

此查询在 SQL 中运行良好,但在 HQL 中却出现错误:
错误是。

(java.lang.IllegalStateException:节点没有数据类型:org.hibernate.hql.internal.ast.tree.MethodNode)

请帮助我找出我做错了什么,帮助我知道如何在 HQL 中使用 CONCAT_WS()

下面是我如何编写 HQL 查询

SELECT C1._URI,C1.HEALTH_FACILITY,C1.DISTRICT,CONCAT_WS(',', C1.BLOCKS_OF_BHUBRI, C1.BLOCKS_OF_GOLAGHAT, C1.BLOCKS_OF_HAILAKANDI) as Block_name
FROM GapAnalysisWashInHealthFacilitiesCore C1

任何帮助将不胜感激

最佳答案

CONCAT_WS 是 mySql 特有的函数。 HQL 是一种通用语言,不了解 native SQL 函数和语法。如果你真的需要这个功能,那么你应该使用 Hibernate 的原生 SQL API。

Session session = ...;
Query query = session.createSQLQuery("
SELECT id,CONCAT_WS(',', field_1, field_2, field_3, field_4) Block_name FROM `table`");
List result = query.list();

那你不妨看看Result Transformers获取 GapAnalysisWashInHealthFacilitiesCore 对象列表的结果。

关于java - 如何在 Hibernate HQL 中使用 CONCAT_WS(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23212491/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com