Nó có thể có nghĩa là một số truy vấn của bạn không được thực thi. Nếu bạn có nhiều truy vấn trong giao dịch, ví dụ:
- bắt đầu giao dịch
- truy vấn1
- truy vấn2
- truy vấn3
- kết thúc giao dịch
và query2 ném lỗi, sau đó khi bạn cố gắng thực thi query3, bạn sẽ gặp lỗi này.
- bắt đầu giao dịch
- query1 (đã thành công)
- query2 (lỗi, đã xảy ra lỗi)
- query3 (ngoại lệ như của bạn được đưa ra)
- kết thúc giao dịch
Bạn nên xử lý ngoại lệ được ném ra từ query2 và xử lý nó. Hiển thị một số lỗi cho người dùng, giao dịch khôi phục, không bao giờ cố thực hiện truy vấn3.
Xem thêm tại đây: http://www.faqs.org/docs/ppbook/x15040 .htm
CẬP NHẬT
Để kết thúc giao dịch:
List object = null;
try {
org.hibernate.Transaction tx = session.beginTransaction();
try {
Query q = session.createQuery("from Table where lower(translatedText) like lower('%" + term + "%') or lower(translatedAscii) like lower('%" + term + "%') or lower(originalAscii) like lower('%" + term + "%')");
object = (List<Table>) q.list();
} catch (Exception e) {
e.printStackTrace();
} finally {
//You can safely rollback here because you are not changing anything in the DB.
//If you change something, you should commit transaction at the end of try block,
//and here check if it is still active and rollback if it is.
tx.rollback();
}
return object;
} catch (HibernateException e) {
throw new RuntimeException("Could not begin transaction");
}