我有两个表,一个是ObjectP,另一个是AccessObject
ObjectP AccessObject
ObjectId accessObjectId
Name groupId
Description objectId
我在AccessObject中应用了一对一映射(工作正常),如下所示:
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "objectId" , insertable = false, updatable = false, nullable = false, unique = true)
private ObjectP objectP;
当我访问ObjectP时,我也想浏览相关的AccessObject。我怎样才能做到这一点?
最佳答案
在AccessObject中,您将拥有关联的一方:
@OneToOne
@JoinColumn(name = "objectId" , nullable = false, unique = true)
private ObjectP objectP;
然后在ObjectP中具有反面:
@OneToOne(mappedBy="objectP")
private AccessObject accessObject
fetch = FetchType.EAGER是默认的*-一对一提取策略,因此是多余的
拥有方一定不能具有insertable / updatable = false,因为您希望该方拥有关联
mappingBy是在双向关联中标记反面的方式