如何使用@OneToOne关系同时保留两个实体?

时间:2014-01-10 14:23:36

标签: java persistence managed-bean one-to-one

我有两个实体TravelAssurance与@OneToOne的关系。必须通过具有Save按钮的相同界面创建两个实体。我用这个方法:

ManagedBean.java:

public String add(){
    newTravel = manager.createTravel(arrivalDate, returnDate, lengthToStay, addToStay, visitPurpose);
    newAssurance = manager.createAssurance(company, assuranceStart, assuranceEnd, newTravel);
    return "Travellers";
}

在数据库中,我发现与Travel_Id相关联的Assurance,但Assurance_Id表中的nullTravels

1 个答案:

答案 0 :(得分:1)

您的关系似乎不是双边的(即您不使用mappedBy注释属性)。如果您使用了一列,则只有一列(Travel_IdAssurance_Id,具体取决于您放置mappedBy的位置)。

还考虑在同一事务中进行保存,例如使用相同的管理器方法并设置关系的两侧。