我正在使用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查询工作?
答案 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