【问题标题】:Spring Boot JPA Query with is empty and is null key wordsSpring Boot JPA Query with is empty and is null 关键字
【发布时间】:2018-08-08 06:19:23
【问题描述】:

我使用的是 spring boot 2.0.3.RELEASE 和 spring data jpa 2.0.8.RELEASE。我有两个表 TableA、TableB,它们是一对一映射的。

表A

@Entity
@Table(name = "table_a")
public class TableA {

     @Id
     @Column(name = "id")
     private Long id;

     @OneToOne(mappedBy = "table_b", cascade = CascadeType.ALL)
     private TableB tableB;
}

表B

@Entity
@Table(name = "table_b")
public class TableB {

     @Id
     @Column(name = "id")
     private Long id;

     @OneToOne
     @JoinColumn(name = "id")
     private TableA tableA;
}

当映射的 TableB 不存在时,我需要获取 TableA 的值。我在 TableA Jpa 存储库中编写了以下查询。

@Query(value = "select a from TableA a where a.tableB is null and a.id=?1")
TableA findTableAValues(Long id);

但它没有给出预期的结果。如果我将 is null 替换为 is empty 关键字,则查询会给出预期结果。请任何人解释为什么会发生这种事情?

【问题讨论】:

    标签: java spring-boot spring-data-jpa


    【解决方案1】:

    IS EMPTY 运算符在逻辑上等同于 IS NULL,但用于集合。

    您可以访问此链接以获取更多详细信息和示例http://www.java2s.com/Tutorials/Java/JPA/4070__JPA_Query_Is_Empty.htm

    【讨论】:

    • 这里我使用了一对一的映射。它也被认为是一个集合?
    • 在您的答案中包含链接文章的重要部分。以防万一java2s离线。
    猜你喜欢
    • 1970-01-01
    • 2018-09-12
    • 2020-01-22
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 2022-12-01
    • 2021-11-10
    • 1970-01-01
    相关资源
    最近更新 更多