我有两个实体Travel
和Assurance
与@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
表中的null
为Travels
。
答案 0 :(得分:1)
您的关系似乎不是双边的(即您不使用mappedBy
注释属性)。如果您使用了一列,则只有一列(Travel_Id
或Assurance_Id
,具体取决于您放置mappedBy
的位置)。
还考虑在同一事务中进行保存,例如使用相同的管理器方法并设置关系的两侧。