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