首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql查询运行正常,但JPA查询不返回任何内容

Mysql查询运行正常,但JPA查询不返回任何内容
EN

Stack Overflow用户
提问于 2017-02-24 23:49:31
回答 2查看 38关注 0票数 0

我正在尝试让这个查询在JPA中工作

它在mysql中工作得很好:

代码语言:javascript
复制
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查询:

代码语言:javascript
复制
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语句一定出了什么问题。

EN

回答 2

Stack Overflow用户

发布于 2017-02-24 23:55:39

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2017-02-25 00:01:14

当您创建实体之间的关系时,JPA查询使用JOIN条件。

对于原始SQL查询,您还没有提供将默认包含在JPA查询中ON条件。

这是我看到的唯一不同之处。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42442837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档