2017-02-24 16 views
0

を返しません:MySQLのクエリが完全に実行されますが、JPAのクエリは、私はそれは、MySQLで完璧に動作JPA</p> <p>で動作するようにこのクエリを取得しようとしています何も

select * from order_header join order_detail where (order_header.buying_partner_id = 1 or order_header.buying_partner_id = 3) AND ((order_detail.warehouse_id = 6) or (order_header.warehouse_id = 6 and order_detail.warehouse_id is null)) and (order_detail.tracking_number is null or order_detail.tracking_number = '') and order_detail.canceled != 1 and (order_header.order_num is NOT NULL and order_header.order_num != '') and order_header.timestamp > '2017-01-24 08:33:00.096' group by order_header.order_num order by order_header.comment DESC; 

結果が返されます。

JPAクエリ:

Select h FROM OrderHeader h JOIN h.orderDetails d WHERE (h.buyingPartner.id = 1 or h.buyingPartner.id = 3) AND ( (d.warehouse.id =6)   OR  (h.warehouse.id =6 AND d.warehouse.id IS null ) )  AND (d.trackingNumber IS null or d.trackingNumber = '')  AND d.canceled != 1 AND (h.orderNum IS NOT null AND h.orderNum != '') and h.timestamp > '2017-01-24 09:32:39.865' GROUP BY h.orderNum ORDER BY h.comment DESC 

それは何も返しません。エラーはありません。ちょうど何も返しません。

これらはまったく同じ記述です。

私のJPAステートメントに何か問題があります。

+0

よく分かりますよね? 'order_header'と' OrderHeader'と... 'order_detail'とorderDetails ...同じ文ではないと私は思っています.... –

答えて

0
Select h FROM OrderHeader h JOIN h.orderDetails d WHERE (h.buyingPartner.id = 1 or h.buyingPartner.id = 3) AND ((d.warehouse.id =6) OR (h.warehouse.id =6 AND d.warehouse.id IS null)) AND (d.trackingNumber IS null or d.trackingNumber = '') AND d.canceled != 1 AND (h.orderNum IS NOT null AND h.orderNum != '') and h.timestamp > '2017-01-24 09:32:39.865' GROUP BY h.orderNum ORDER BY h.comment DESC 
+0

選択するのではなくhを選択してください* – Katrin

+0

didn'まだ何も動作していない – user1863457

+0

問題の原因となっているクエリのur timestampの違いを知ることができますか? – Katrin

0

JPAクエリは、エンティティ間の関係を作成したときに条件JOINを使用します。

未処理のSQLクエリでは、JPN Queryにデフォルトで含まれる条件であるONを指定していません。

これは私がそれで見る唯一の違いです。

関連する問題