我有以下
JPQL
查询:
@Query("select p FROM Partner p where p.partnerIdentifier IS NOT NULL")
List<Partner> findAfterDates();
这应该返回
Partner Entities
对于 DO NOT
具有 NULL 的所有 partnerIdentifier
。
但是,我正在运行代码并进行调试,我发现返回的
Collection
包含 entities
,该字段具有 null
。
这是
JPQL
中的错误吗?
一位同事过来建议我使用
join
,因为 inner
对象是 one to one
映射对象。
以下内容现在返回正确的结果:
@Query("select p FROM Partner p join p.partnerIdentifier pi where pi is not null")
List<Partner> findAfterDates();
再次提醒,在休眠状态下我们有一个
relational database
,而逻辑上应该使用 oop
/jpql
工作的东西却没有。
@Query("select p FROM Partner p JOIN p.partnerIdentifier")
List<Partner> findAfterDates();
如果使用 LEFT JOIN,则不需要 NOT NULL 语句,只需得到空值