程序里需要先删除数据,然后再添加新的数据。请问下面这样的写法能确保异常时回滚吗?
另外,在保存新对象的时候,其主健对应的对象属性我并没有设定,因为主健字段的值是自动增加的。这样处理有没有什么问题? Session session = sessionFactory.getCurrentSession();
try{
session.beginTransaction().begin();
// before saving the new information, remove the old information
String delSql = "delete from XXXX where XXX='"+XX+"' ";
// insert new data
for(Integer id : ids ){
XXXXX o = new XXXXX();
o.setXXId(XX);
o.setAAId(XX);
session.merge(o);
}
session.beginTransaction().commit();
getSession().clear();
}catch(Exception e){
getSession().beginTransaction().rollback();
getSession().clear();
}
另外,在保存新对象的时候,其主健对应的对象属性我并没有设定,因为主健字段的值是自动增加的。这样处理有没有什么问题? Session session = sessionFactory.getCurrentSession();
try{
session.beginTransaction().begin();
// before saving the new information, remove the old information
String delSql = "delete from XXXX where XXX='"+XX+"' ";
// insert new data
for(Integer id : ids ){
XXXXX o = new XXXXX();
o.setXXId(XX);
o.setAAId(XX);
session.merge(o);
}
session.beginTransaction().commit();
getSession().clear();
}catch(Exception e){
getSession().beginTransaction().rollback();
getSession().clear();
}
解决方案 »
- 后台dwr返回一个string类型的json格式数据,前台js如何读取?
- spring2.0和hibernate3.2做集成时,是不是删除spring包里的asm3.2.2就行了
- 中国人开发的开源史上最牛的框架
- 高分求助:请问Spring做单元测试的时候如果通过mock虚拟jndi数据源呢?
- js读取xml出现的问题
- James狂写日志,应该如果解决?
- 请大侠指教,用TOMCAT5.0时,JAVABEAN或SERVLET修改后还要重起一下TOMCAT,请问有什么好的解决办法吗?分值可以再加!!!
- 写XML时出现异常,解析器为org.apache.crimson
- 怎样写struts的论文
- 请问Structs是架构吗?如何学习它?
- jsp在input的value里面如何输出""
- Sprint MVC 在ubuntu 系统上异常
常规是这么写:Transaction tr=null;
Session session = sessionFactory.getCurrentSession();
try{
tr=session.beginTransaction();
//delete
//save
tr.commit();
}catch(Exception e){
tr.rollback();
System.out.print(e);
}
finally{
session.clear();
}
}