【问题标题】:JPQL IS NOT NULL is returning objects with NULLJPQL IS NOT NULL 返回带有 NULL 的对象
【发布时间】:2017-01-07 22:37:57
【问题描述】:

我有以下JPQL 查询:

@Query("select p FROM Partner p where p.partnerIdentifier IS NOT NULL")
    List<Partner> findAfterDates();

这应该返回所有Partner Entities DO NOTpartnerIdentifier 有NULL。

但是,我正在运行代码并进行调试,我看到返回的Collection 包含entities,该字段具有null

这是JPQL 中的错误吗?

【问题讨论】:

    标签: java spring hibernate jpql


    【解决方案1】:

    一位同事过来建议我使用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 的东西却没有。

    【讨论】:

    • 如果你想使用 IS NULL 记得使用 LEFT JOIN。
    猜你喜欢
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 2022-11-21
    • 1970-01-01
    相关资源
    最近更新 更多