一般這個錯誤都是因為你的事務沒有提交,如下:
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一下
