【发布时间】: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