一般这个错误都是因为你的事务没有提交,如下:
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一下