gethibernatetemplate delete方法的事物回滚 本帖最后由 yejunjunjun 于 2011-06-24 01:58:49 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <props><prop key="insert*">PROPAGATION_REQUIRED</prop><prop key="update*">PROPAGATION_REQUIRED</prop><prop key="del*">PROPAGATION_REQUIRED</prop><prop key="*">PROPAGATION_REQUIRED</prop></props>不一定是你删除回滚了,你把所有的方法都设置成必须运行在一个事物中了,而且没有对读取方法设置只读,所以也可能是Address address = (Address) getHibernateTemplate().get(Address.class,id);没有读取出来,你也说了控制台没有输出相应的删除SQL语句。楼主可以在get方法后输出一下address的属性值看看是否获取到了。 <prop key="*">PROPAGATION_REQUIRED</prop>改成read-only看看楼上说的差不多了,调试下看看 1楼 我的address属性能够获取到 它不是空的!谢谢回复! 你在代码中如何取dao的?应该使用applicationContext.getBean("AddressDAOProxy") 里面是这种方式来取,这样才行,否则事务默认会回滚的。 参看以下文章:http://www.flydmeng.com/index.php/code/hibernate-non-transaction-session-save-success.html 我是通过注入的方式进行取dao的,在配置文件中配置 dao的bean 然后在action中注入 !我看了你的文章 ,也试了 你说的 applicationContext.getBean("AddressDAOProxy") 里面是这种方式来取 dao,确实可以运行,安装你文章里面说的,我之所以用你的方法取dao能够删除,是因为连接池里面已经有自动提交事务, 那么我用注入的方法不能删除是因为事务没有配好了? 那我用注入的方法取dao 哪里出错了呢? 谢谢回复! 我有个疑问,通过applicationContext.getBean("AddressDAOProxy")怎么能确定你拿到的是你要删除的对象呢。。? 解决了 原来我一直注入的是 “addressDAO” 而不是“AddressDAOProxy” 所以一直事务回滚! 非常感谢你的回答! 遍历取值问题 关于struts2下载问题 Hibernate中多表查询必须要建立表与表之间的关联关系吗? 一幅牌随抽出15张 showModalDialog提交表单后不能自动返回 NetBeans 无法调试 JAVA Web编程中Oracle SQL的调优及表、索引的设计和优化 想创建一个J2EE的框架,请有经验的朋友给点提示 用struts怎样实现将在jsp页面中增加html代码 用jsp输出lrc的内容,内容输出来了,但是怎么让jsp根据lrc文件原本的样式来进行输出呢,就是换行,字体颜色。 求struts2购物车中求总价的思路 谁用过 NetPayClient 在线支付
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="del*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
不一定是你删除回滚了,你把所有的方法都设置成必须运行在一个事物中了,而且没有对读取方法设置只读,所以也可能是Address address = (Address) getHibernateTemplate().get(Address.class,
id);没有读取出来,你也说了控制台没有输出相应的删除SQL语句。楼主可以在get方法后输出一下address的属性值看看是否获取到了。
改成read-only看看楼上说的差不多了,调试下看看
applicationContext.getBean("AddressDAOProxy") 里面是这种方式来取,这样才行,否则事务默认会回滚的。
参看以下文章:
http://www.flydmeng.com/index.php/code/hibernate-non-transaction-session-save-success.html
我看了你的文章 ,也试了 你说的 applicationContext.getBean("AddressDAOProxy") 里面是这种方式来取 dao,确实可以运行,安装你文章里面说的,我之所以用你的方法取dao能够删除,是因为连接池里面已经有自动提交事务, 那么我用注入的方法不能删除是因为事务没有配好了? 那我用注入的方法取dao 哪里出错了呢?
谢谢回复!