【发布时间】:2018-03-11 07:59:36
【问题描述】:
我有一个查询,它给我带来了 2 个结果。当我在 MySQL Workbench 上使用它时它可以正常工作,但是当我在我的休眠映射中使用它作为公式时,我收到了这个错误:
严重:servlet [FacesServlet] 的 Servlet.service() 在上下文中 路径 [/glic_web_admin] 抛出异常 [javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException:无法提取 ResultSet] 有根本原因 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 你有一个 SQL 语法错误;检查与您对应的手册 MySQL 服务器版本,以便在附近使用正确的语法 'shipmentre0_.SEPARATOR ', ') FROM glic_shipment 左外连接 glic_shipment' 在第 1 行
这是我在休眠映射中的 SQL 查询:
<property name="supplier" type="java.lang.String"
formula="(SELECT GROUP_CONCAT(pnSon.supplier SEPARATOR ', ')
FROM glic_shipment s
LEFT OUTER JOIN glic_shipment sSon ON sSon.id_shipment_parent = s.id
LEFT OUTER JOIN glic_rel_purchase_shipment_common_data pscdSon ON pscdSon.id = sSon.id_common_data
LEFT OUTER JOIN glic_purchase_notice pnSon ON pnSon.id = pscdSon.id_purchase_notice)" />
此查询的预期输出是一个将结果连接起来的字符串。我知道这是语法问题,但我没有找到解决方法。
编辑: 这是hibernate正在执行的查询:
(SELECT GROUP_CONCAT(pnSon.supplier shipmentre0_.SEPARATOR ', ') FROM glic_shipment s LEFT OUTER JOIN glic_shipment sSon ON sSon.id_shipment_parent = s.id LEFT OUTER JOIN glic_rel_purchase_shipment_common_data pscdSon ON pscdSon.id = sSon.id_common_data LEFT OUTER JOIN glic_purchase_notice pnSon ON pnSon.id = pscdSon.id_purchase_notice) as formula27_0_
我该如何解决这个问题?
【问题讨论】:
-
在 hbm config 中添加
true 并发布输出的查询 -
@MaciejKowalski 检查编辑,感谢回复
标签: mysql sql hibernate hibernate-mapping