我有两个表,一个是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是在双向关联中标记反面的方式

10-05 23:36