Java 带的Spring Boot JPA查询为空,关键字为空
我使用的是SpringBootVersion2.0.3.RELEASE和SpringDataJPA20.8.RELEASE。我有两个表TableA和TableB,它们是一对一映射的 表Java 带的Spring Boot JPA查询为空,关键字为空,java,spring-boot,spring-data-jpa,Java,Spring Boot,Spring Data Jpa,我使用的是SpringBootVersion2.0.3.RELEASE和SpringDataJPA20.8.RELEASE。我有两个表TableA和TableB,它们是一对一映射的 表 @Entity @Table(name = "table_a") public class TableA { @Id @Column(name = "id") private Long id; @OneToOne(mappedBy = "table_b", cascad
@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值。我在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关键字,查询将给出预期结果。任何人都可以解释为什么会发生这种情况吗?is EMPTY运算符在逻辑上等同于is NULL,但用于集合
您可以访问此链接了解更多详细信息和示例这里我使用了一对一映射。它也被认为是一个集合?在你的答案中包括链接文章的重要部分。以防java2s离线。