今天做一个删除的时候,有如下代码:
for
(
int
i
=
0
; i
<
entities.length; i
++
) {
DeptDescVO deleteDeptDescVO = entities[i];
if (getDeptDescById(deleteDeptDescVO.getDeptDescId()) != null ) {
getHibernateTemplate().delete(deleteDeptDescVO);
}
}
DeptDescVO deleteDeptDescVO = entities[i];
if (getDeptDescById(deleteDeptDescVO.getDeptDescId()) != null ) {
getHibernateTemplate().delete(deleteDeptDescVO);
}
}
抛出异常:
org.hibernate.NonUniqueObjectException:
a different object with the same identifier value was already associated with the session
a different object with the same identifier value was already associated with the session
我想是因为调用getDeptDescById的时候已经读出一个DeptDesc了,而删除的时候又是用的另外new的DeptDes,所以会报错,我改了一下代码就可以了。
for
(
int
i
=
0
; i
<
ids.length; i
++
) {
DeptDescVO deleteDeptDescVO = getDeptDescById((ids[i]));
if (deleteDeptDescVO != null ) {
getHibernateTemplate().delete(deleteDeptDescVO);
}
}
DeptDescVO deleteDeptDescVO = getDeptDescById((ids[i]));
if (deleteDeptDescVO != null ) {
getHibernateTemplate().delete(deleteDeptDescVO);
}
}