ssh hibernate 更新操作无效

来源:百度知道 编辑:UC知道 时间:2024/06/22 01:38:49
***我只把用到的写出来***。不是我吝啬分,是怕没高手答出来浪费。要多少分我可以加。
业务逻辑:人员类:personnel 部门类:department
Personnel 类:
private Integer id;

private State state;

private Purview purview;

private Department department; //部门的属性

private Job job;
personnel.hbm.xml:
<class name="com.hibernate.Personnel" table="personnel" catalog="per_oa">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<!--这里的cascade写不写都是一样,还有fetch="select"写不写一样错误
写lazy是因为要通过人员查它所属的部门,职务等不写查不出来-->
<many-to-one name="state" class="com.hibernate.base.State" cascade="none"

lazy="false">
<column name="state_id" not-null="true" />

第一次执行成功没有报错吗?

你是不是做了什么外键。导致数据库修改失败。
HIBERNATE。。很讨厌。异常都他自己给吞了
我也碰过死活存不进去。当时是忘记了外键

是不是有设置了隔离级别。。看看
Spring做了事物。。
片段代码根本看不出来问题

for (int i = 0; i < perIDs.length; i++)
{
Personnel per = dao.findById(Integer.valueOf(perIDs[i]));

per.setDepartment(de);

dao.update(per);
}

上面是你的代码,你在执行了findById(Integer.valueOf(perIDs[i]))
说明你的per已经是持久化得了,你在执行per.setDepartment(de)
之后只要刷新缓存就行了,不用再执行dao.update(per)了,你试试!