zoukankan      html  css  js  c++  java
  • org.hibernate.TransactionException: nested transactions not supported错误的解决方法!

    一般这个错误都是因为你的事务没有提交,如下:

    public void addUploadFile(UploadedFile uploadedFile) throws Exception{
            Session session=su.getCurrentSession();
            Transaction ts=session.beginTransaction();
            try {
                session.save(uploadedFile);
                
            } catch (Exception e) {
                // TODO: handle exception
                ts.rollback();
                e.printStackTrace();
                throw e;
            }
        }

    这样会导致hibernate抛出这个异常。

    但是如果你这样:

    public void addUploadFile(UploadedFile uploadedFile) throws Exception{
            Session session=su.getCurrentSession();
            Transaction ts=session.beginTransaction();
            try {
                ts.begin();
                session.save(uploadedFile);
                ts.commit();
            } catch (Exception e) {
                // TODO: handle exception
                ts.rollback();
                e.printStackTrace();
                throw e;
            }
        }

    这样以来同样会抛该异常。

    正确的做法就是:

    public void addUploadFile(UploadedFile uploadedFile) throws Exception{
            Session session=su.getCurrentSession();
            Transaction ts=session.beginTransaction();
            try {
                session.save(uploadedFile);
                ts.commit();
            } catch (Exception e) {
                // TODO: handle exception
                ts.rollback();
                e.printStackTrace();
                throw e;
            }
        }

    亲测,mark一下

  • 相关阅读:
    java 将动作和名字绑定
    java 切换不同的显示风格
    java 背景颜色更改
    java 图像显示
    java 字符串
    java 2D 绘图
    java jFrame
    java bitset and C++ bitset
    踏得网
    纯CSS画的基本图形(矩形、圆形、三角形、多边形、爱心、八卦等)
  • 原文地址:https://www.cnblogs.com/auto714/p/2917359.html
Copyright © 2011-2022 走看看