微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当其中一个字段为空时,JPQL不返回结果

如何解决当其中一个字段为空时,JPQL不返回结果

我有一个查询,看起来像这样: @Query(value = "SELECT e FROM Entity e")返回所有实体(当前为15)。我只想选择某些字段以使查询的内存使用效率更高(不需要很多嵌入式实体)。

我有2个多对一关系,a和b,其中一个通常为null,另一个具有值。如果我做@Query(value = "SELECT e.a FROM Entity e"),我得到10个结果,其中a不为空,而当我做@Query(value = "SELECT e.b FROM Entity e")时,我得到另外5个结果,其中b不为空。但是,如果我执行@Query(value = "SELECT e.a,e.b FROM Entity e"),则会得到0个结果。我认为这一切都是15,将其返回为List<Object[]>。为什么会发生这种情况,我是否可以更改它,以便@Query(value = "SELECT e.a,e.b FROM Entity e")返回所有实体?

解决方法

如果e.ae.b是实体,则需要left join

select a,b from Entity e left join e.a a left join e.b b

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。