今天在做一个employee与department的many-to-one映射程序更新的时候,首先通过数据库查询数据显示到前台,然后更改部门,设置部门为空。jsp的代码是这样的:
<s:textfile name="user.department.deptName" />
<s:hidden name="user.deparment.deptId"/>
需要设置部门为空,则保存数据的时候user.deparment.deptId这个字段的值是0,当update user信息的时候提示object references an unsaved transient instance save the transient instance before flushin这个异常,心里很纳闷一开始的时候可以更新,现在就不行了。后来换了一种方法,就是每次更新的时候把部门表重新从数据库里面取出一次来,再在用户表实体是setDepartment,可还是报错,最后实在没办法,就在每次保存数据之前,先把session clear掉,在保存就OK了