例子:在service中public void saveUsers(){
for(int i=0;i<10;i++){
User user = new User();
user.setName("chen"+i);
user.setDis("dis"+i);
userDao.saveUser(user);
}
}
dao中public void saveUser(User user){
RandomExceprion.run();
this.getHibernateTemplate().save(user);
}
这样的使用spring事务的时候当10次DAO操作的时候只要一次不成功的话就会不执行。
那我就不明白了,DAO层的this.getHibernateTemplate()不是会每次打开一个session,操作完成的话就关闭
那不可能实现回滚。就是有几个成功都会跟新到数据库,而我打断点砍了下,执行成功并没有展现到数据库,证明10个DAO操作是在一个session中,一个transation中。到底spring 通过什么方式实现这个的。有哪位帮我解答下。而对于opensessioninview 和transation上述实现的不同在哪?
for(int i=0;i<10;i++){
User user = new User();
user.setName("chen"+i);
user.setDis("dis"+i);
userDao.saveUser(user);
}
}
dao中public void saveUser(User user){
RandomExceprion.run();
this.getHibernateTemplate().save(user);
}
这样的使用spring事务的时候当10次DAO操作的时候只要一次不成功的话就会不执行。
那我就不明白了,DAO层的this.getHibernateTemplate()不是会每次打开一个session,操作完成的话就关闭
那不可能实现回滚。就是有几个成功都会跟新到数据库,而我打断点砍了下,执行成功并没有展现到数据库,证明10个DAO操作是在一个session中,一个transation中。到底spring 通过什么方式实现这个的。有哪位帮我解答下。而对于opensessioninview 和transation上述实现的不同在哪?
解决方案 »
- 为何在Ctrl+Shift+F格式化jsp文本时出错
- 我是一名java程序员,主要开发javaee程序,想问下有没有必要学习linux?
- apache启动时出现Cannot load /usr/local/etc/apache/modules/mod_jk2.so
- struts2的问题
- 我想在wework中写一个自己的拦截器,我该怎么写??
- poi3.6导入excel2003表,导入不了
- java security 问题
- 紧急求救:EJB-QL支持嵌套吗?嵌套的SQL用EJB-QL怎么写呢,请大虾指点一二
- jsp调用servlet提示找不到网页!求救!
- J2EE 方面的新书,是好是坏,你说我说????????
- 加急。。。tomcat6.0配置oracle9.2.0.8 连接池问题。
- oscache集群通知的简单问题
那我就不明白了,DAO层的this.getHibernateTemplate()不是会每次打开一个session,操作完成的话就关闭
那不可能实现回滚。就是有几个成功都会跟新到数据库,而我打断点砍了下,执行成功并没有展现到数据库,证明10个DAO操作是在一个session中,一个transation中。到底spring 通过什么方式实现这个的。有哪位帮我解答下。而对于opensessioninview 和transation上述实现的不同在哪? 你理解错了吧DAO层的this.getHibernateTemplate()不是会每次打开一个session,操作完成的话就关闭,是这样的,但是spring事务的时候当10次DAO操作的时候 你就有10个save,这样只要你没有事务提交,那都没写到数据库,只是写到缓存,10个其中有错的时候,他就不会提交。