使用Hibernate注释的java Lazy Onetoone可选双向映射
我想使用Hibernate注释创建一个懒惰的一对一双向“可选”映射。我知道@MappedBy
和@JoinColumn
的正常使用会导致每次触发N+1个查询
有什么办法可以避免吗?不仅在运行时,而且在POJO
级别。我正在使用^{
此外,如果没有出路,是否可以对单向映射应用标准。例如,我有A <-> B,
和C -> A
作为映射。我正在B
上搜索。当C
与A
明显单向时,是否可以对C
施加限制
你可以在下面搜索框中键入要查询的问题!
我想使用Hibernate注释创建一个懒惰的一对一双向“可选”映射。我知道@MappedBy
和@JoinColumn
的正常使用会导致每次触发N+1个查询
有什么办法可以避免吗?不仅在运行时,而且在POJO
级别。我正在使用^{
此外,如果没有出路,是否可以对单向映射应用标准。例如,我有A <-> B,
和C -> A
作为映射。我正在B
上搜索。当C
与A
明显单向时,是否可以对C
施加限制
# 1 楼答案
我找不到完整但最少的@OneToOne的例子,所以就在这里。它既不依赖于hibernate版本,也不滥用
@OneToMany
家长
定义
id
并负责管理一致性/同步,但技术上不拥有该关系,因为它不能引用B
中的任何唯一索引(或者至少我们不想添加冗余数据)孩子
通过重新使用父
A
的id技术上拥有关系这就是表格的样子(假设是博士后):
# 2 楼答案
@OneToOne
注释在hibernate中不起作用。请考虑^ {< CD2> },或者尝试使用^ {CD3}},如^ {CD1}}。你也可以尝试@PrimaryKeyJoinColumn
另外
@LazyToOne
注释在JPA实现中不存在,您应该在那里使用@OneToOne(fetch = FetchType.LAZY, optional = false)