将多个列合并为一个, I found one answer
SELECT id,CONCAT_WS(',', field_1, field_2, field_3, field_4) list
FROM `table`;
这个查询在SQL中运行正常,但它在HQL中给出了错误:
错误是。
请帮我找出我做错了什么,帮助我知道如何在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
任何帮助都会感激
答案 0 :(得分:1)
CONCAT_WS
是特定于mySql的函数。 HQL是一种通用语言,不了解本机SQL函数和语法。如果你真的需要这个功能,那么你应该将Hibernate的API用于原生SQL。
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
个对象列表的结果。