【问题标题】:Bi-directional @OneToOne mapping creating records using hibernate双向@OneToOne 映射使用休眠创建记录
【发布时间】:2019-05-02 03:48:23
【问题描述】:

保存双向@OneToOne 映射时,hibernate 是否应该在两个表上都记录?

我有一个表 interview 与列 applicant_id 引用 applicant 表与字段 interview_id 反之亦然,列是 FK。

当通过执行session.save(theInterview)创建列时,休眠应该在applicantapplicant_id中创建记录吗?我需要自己更新现有记录还是我做错了什么?

编辑

刚刚在处理我的 JSP 文件时,注意到我可以看到该引用也存在于申请人身上。但是数据库上的查询显示该字段为空?

休眠映射

@OneToOne(mappedBy="applicant_id", cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "interview_id")
private Interview interview_id;

@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name = "applicant_id", nullable=false)
private Applicant applicant_id;

在录制采访实例后,applicant 上的Interview_id 列。

【问题讨论】:

    标签: java mysql hibernate spring-mvc hql


    【解决方案1】:

    您能提供您的 Hibernate 映射吗?你问的是 Cascade,即 Hibernate 应该级联保存申请人。这完全取决于 Hibernate 是否被指示级联保存关系。

    【讨论】:

    • 请看我的编辑,我注意到申请者那里有参考资料,但数据库中没有记录。
    • 尝试在应聘者类的面试中去掉 JoinColumn 注释。 OneToOne 注解中的 mappedBy 字段定义了 child 到 parent 的映射。
    • 在数据库中仍然没有这个记录。查看添加的图像。
    猜你喜欢
    • 1970-01-01
    • 2014-12-27
    • 2012-10-14
    • 2014-03-12
    • 1970-01-01
    • 2011-05-21
    • 1970-01-01
    • 2017-11-13
    相关资源
    最近更新 更多