无需创建新列即可休眠和多个OneToOne

时间:2018-07-24 09:44:22

标签: java hibernate spring-boot

在以下情况下,我需要多次OneToOne换人:

@Table(name = "User")
public class User {
    @OneToOne(mappedBy = "settingColumnName")
    private Settings setting;
}

@Table(name = "Account")
public class Account {
    @OneToOne(mappedBy = "settingColumnName")
    private Settings setting;
}

@Table(name = "Settings")
public class Settings{
    @OneToOne()
    @JoinColumn(name = "userColumnName")
    private User user;

    @OneToOne()
    @JoinColumn(name = "accountColumnName")
    private Account account;
}

现在,这里的问题是我必须独立创建和保存每个模型,因为它们是StreamEvent捕获的结果。另外,Hibernate将自动创建userColumnNameaccountColumnName。我真正需要做的就是做到这一点:

enter image description here

这可以用Hibernate实现吗?有人可以提供示例吗?

1 个答案:

答案 0 :(得分:0)

@JoinColumn(name="userColumnName", insertable=false,updatable=false),

@JoinColumn(name="accountColumnName", insertable=false,updatable=false),

然后在“设置实体”中为这些拖车列和“具有相同列的地图”添加另外两个字段