日期:2014-05-16  浏览次数:20513 次

hibernate常见错误 表单提交 导致数据库为空值

1.表单提交内容--emp.name emp.age emp.dept.id

Dept类的字段有 id name loc

正确的写法:
??? 表单提交以后会对emp.name emp.age emp.dept.id(这时候的Dept对象里只有id有值 name和loc是空值)
??? Emp emp;
???
??? Dept dept=session.get(Dept.class,emp.getDept().id);//这样获取的Dept对象id name loc都有值
??? emp.setDept(dept);???
??? session.save(emp);
??? //配置文件里面设置了级联操作 保存emp的同时保存emp的属性dept对象的值 cascade
??? //<many-to-one name="dept" column="dept_id" class="com.gang.model.Dept" fetch="join" cascade="true"/>
??? session.commit();
???
错误的写法:
??? session.save(emp);
??? //这个时候dept对象里面的属性dept对象 id有值(表单提交给予的)name loc是空值(表单没给)
??? 所以当就这样操作的时候hibernate会更新相应id的name 和loc字段 导致数据库中dept表中相应id的name 和loc为空值