2017-09-29 5 views
1

私は2つの結果をもたらしているというクエリを持っています。私はMySQLのワークベンチの上にそれを使用する場合には適切に動作しますが、私は式のように私のHibernateのマッピングにそれを使用する場合、私はこのエラーを取得しています:ここでMySQLのクエリはWorkbenchで動作しますが、hibernateはMySQLSyntaxErrorExceptionをスローします

SEVERE: Servlet.service() for servlet [FacesServlet] in context with path [/glic_web_admin] threw exception [javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not extract ResultSet] with root cause com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'shipmentre0_.SEPARATOR ', ') FROM glic_shipment s LEFT OUTER JOIN glic_shipment' at line 1

は、Hibernateマッピングの私の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)" /> 

このクエリの予想される出力は、結果が連結された文字列です。私はそれが構文問題だと知っていますが、私はこれを解決する方法を見つけませんでした。

EDIT: これは休止状態のクエリでは、実行されている:

(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_ 

どのように私はこの問題を解決することができますか?

+0

はHBMの設定で<プロパティ名を=「show_sql」>真を追加および編集をチェック@MaciejKowalski –

+0

をoutputedされるクエリを投稿し、してくれてありがとう応答 – DMC19

答えて

1

あなたは次のようにSEPARATOR ', '試みを書くために持っていない:

<property name="supplier" type="java.lang.String" 
      formula="(SELECT GROUP_CONCAT(pnSon.supplier, ' ') 
    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)" /> 
関連する問題