实例关联的外键对象不为空时保存出错
2012-05-15 10:10
162 查看
例子:
订单:
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则保存成功。
订单:
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则保存成功。
相关文章推荐
- hibernate在做一对多关联时,保存一方的对象,报出不能插入外键的错误的解决方法
- 拾光碎片-----保存失败!未将对象引用设置到对象的实例
- 保存bean时,对bean中的外键对象需要判断fkbean的fkid是否为空
- 筛选关联对象 :外键值 VS 导航属性
- 实例:ABAP Tree Control 使用与ALV Grid对象关联
- .net vs2010 视图aspx页面创建控件时出错 未将对象引用设置到对象的实例
- mysql innodb 外键关联约束实例
- 对象序列化(六):应用实例->程序退出时保存状态
- 单元测试数据库相关方法是出错,未将对象引用设置到对象的实例。
- AnyPref,可直接在SharedPreferences中保存对象实例的SharedPreferences工具类
- ASP.NET Web Deploy 发布项目二次编译出错: Publication (web): 未将对象引用设置到对象的实例
- layout布局文件Main.axml打开时出错 : 未将引用对象实例化
- 【重构】导出Excel时出错:未将对象引用到对象的实例
- AnyPref,可直接在SharedPreferences中保存对象实例的SharedPreferences工具类
- Hibernate一对一外键关联实现方法实例
- Redis保存对象实例
- Unity对象实例的执行顺序探究及一个对象关联多个脚本的
- asp.net为gridview绑定数据时出错“未将对象设置引用到对象实例”
- 本地报表处理期间出错。尚未制定报表“Report1”的报表定义未将对象引用设置到对象的实例
- php中用Session保存对象实例