zf_1024 2017-10-02 13:35
浏览 735

hibernate中nested transactions not supported问题

下边这个方法是struts 中action类中的某个方法,当访问他时:
public void fortest(){
Session session = HUtil.getSession();
session.beginTransaction();
// session.flush();
session.getTransaction().commit();

     session.beginTransaction();
     //session.flush();
     session.getTransaction().commit();  
    /* service.selectRoomCount(room);*/
 }

会报告错误:session被关闭了,只好加上session.flush()方法。其中getSession()是获取ThreadLocal的session。
然后就会报告错误nested transactions not supported--不支持嵌套的事物。

原理不清楚,但是解决方法很简单:重新开启一个session,即调用sessionfactory.openSession()方法,
然后在事物提交后关闭session即可。

有没有能解析下原理的大神?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
    • ¥15 微信公众号自制会员卡没有收款渠道啊
    • ¥15 stable diffusion
    • ¥100 Jenkins自动化部署—悬赏100元
    • ¥15 关于#python#的问题:求帮写python代码
    • ¥20 MATLAB画图图形出现上下震荡的线条
    • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
    • ¥15 perl MISA分析p3_in脚本出错
    • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
    • ¥15 ubuntu虚拟机打包apk错误