例子:
訂單:
public class Order{
.......
private Person person;
public Person getPerson(){
return person;
}
public void setPerson(Person person){
this.person = person;
}
......
}
客戶:
public class Person{
......
private Integer id;
private String name;
......
}
在hibernate映射裏面的配置如下:
......
<many-to-one name=''person" class="Person" lazy="false">
<column name="PERSON">
</many-to-one>
......
前臺表單:
<s:form>
......
<s:hidden name="order.person.id" value=""/>
<s:textfield name="order.person.name" value=""/>
......
</s:form>
當表單提交的時候如果後臺對應的order實例中person屬性已經創建,也就是order中的person屬性不爲空,但是person的id是空的,則當orderDao.save(order);的時候後臺就會報錯,原因:
因爲person的id是空的,但是person的實例存在,存在的person實例沒有和數據庫中的記錄相對應,也就是不存在id爲空的person,所以保存order的時候,就會報unsave的實例的錯誤。
修正:如果order沒有對應的人員,則將order中的person屬性值爲null則保存成功。