JPA存储库:具有空值的内连接

时间:2016-01-12 10:31:32

标签: java mysql jpa

我正在使用JPA存储库来访问Mysql。 我有这个问题:

@Query("Select s.productName, s.stock from Sell s");

我收到执行错误,因为库存有时为空 生成的此查询的sql转换是:

select sell0_.productName, sell0_.stock_id from T_SELL sell0_ inner join T_STOCK stock0_ on sell0_.stock_id=stock0_.id  

即使stock_id为null,有没有办法让这个JPA查询工作?

2 个答案:

答案 0 :(得分:3)

应该能够合并

@Query("Select s.productName, coalesce(s.stock,'xxx') from Sell s");

全名是https://docs.jboss.org/hibernate/orm/4.3/devguide/en-US/html/ch11.html

希望这有帮助。

答案 1 :(得分:1)

尝试使用optional = true:

更改关系定义
@OneToOne(optional = true)
private Stock stock; 

您甚至可以使用连接,子选择或其他选择更改此数据的提取方式。更多信息:JPA eager fetch does not join