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一下


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM