[rms2] ERROR [http-8080-Processor23] $RmsSysPararestList_13.onSave(277) | org.springframework.orm.hibernate3.HibernateSystemException: identifier of an instance of com.sunnyever.model.RmsSysPararest was altered from 2331187 to 2331194; nested exception is org.hibernate.HibernateException: identifier of an instance of com.sunnyever.model.RmsSysPararest was altered from 2331187 to 2331194
The issue 主要是因为springFramwork中处理一级session的dirty数据,出现错误
可以进行如下实现
public void saveRmsSysPararests(Collection rmsSysPararests) {
Session session = getHibernateTemplate().getSessionFactory().openSession();
Transaction tx = null;
try{
tx = session.beginTransaction();
if (rmsSysPararests.size() > 0){
for(Iterator it=rmsSysPararests.iterator();it.hasNext();){
RmsSysPararest rs = (RmsSysPararest)it.next();
session.saveOrUpdate(rs);
session.flush(); //force the SQL INSERT
session.refresh(rs);
}
}
tx.commit();
}
catch (HibernateException he){
tx.rollback();
throw he;
}
finally{
session.close();
}
}