java - Hibernate OneToOne 映射反向?

标签 java spring hibernate mapping

我有两个表,一个是 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 是默认的 *-To-One 获取策略,因此它是多余的

  • 拥有方不得设置 insertable/updatable=false,因为您希望此方拥有关联

  • ma​​ppedBy 是您在双向关联中标记反面的方式

关于java - Hibernate OneToOne 映射反向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25301240/

相关文章:

java - Spring Json @RequestBody post 报错400

java - 使用 Hibernate Envers 审核可嵌入实体

mysql - Hibernate、jpa 和 mysql

java - 如何获取要在 ArrayList.set() 方法中使用的二维数组列表的索引?

java - 为什么三元运算符会因类型不匹配错误而失败?

java - session 超时后,Spring Security 不会重定向到上次请求的页面登录

java - SSO spring kerberos 中的注销功能

java - Spring Dao和Dao patter在异常处理上的冲突

java - 如何将 VM 选项添加到 jar 文件?

java - 在标题数据和第一列数据匹配的位置选择一个文本框