赞
踩
先使用hql语句删除所有记录,接着再添加记录,记录有时没有真正加入数据库:
代码
Session session = HibernateSession.getSession(); Query query = session.getNamedQuery("limit.delDfp");//删除所有记录 query.setInteger(0, new Integer(stationNo)); query.executeUpdate(); for(DfpAlarmLimit limit:list){ session.save(limit); } HibernateSession.closeSession();//事务提交并关闭Session
这样如果记录没有改变,执行之后记录删除了,但没有新增记录,再执行一次,就有新增记录了;
修正代码:
Session session = HibernateSession.getSession(); Query query = session.getNamedQuery("limit.delDfp"); query.setInteger(0, new Integer(stationNo)); query.executeUpdate(); HibernateSession.closeSession(); session = HibernateSession.getSession(); HibernateSession.evict(DfpAlarmLimit.class); for(DfpAlarmLimit limit:list){ session.save(limit); } HibernateSession.closeSession();
删除记录后先提交,然后重新打开Session,再新增记录,就可以了。