PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Грешка при хибернация:текущата транзакция е прекратена, командите се игнорират до края на транзакционния блок

Това вероятно означава, че някои от вашите заявки не са били изпълнени. Ако имате много заявки в транзакцията, напр.

  • започнете транзакция
  • заявка1
  • заявка2
  • заявка3
  • завършете транзакцията

и query2 извежда грешка, тогава когато се опитате да изпълните query3, получавате тази грешка.

  • започнете транзакция
  • заявка1 (успешна)
  • query2 (грешка, нещо се обърка)
  • заявка3 (получава се изключение като вашето)
  • завършете транзакцията

Трябва да обработите изключението, хвърлено от query2, и да го обработите. Показване на грешка на потребителя, връщане назад на транзакция, никога не се опитвайте да изпълните заявка3.

Вижте и тук:http://www.faqs.org/docs/ppbook/x15040 .htm

АКТУАЛИЗАЦИЯ

За да завършите транзакцията:

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");
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Предаване на резултатите от заявка за база данни към диаграми на jQuery Sparkline с помощта на PHP

  2. docker SHM_SIZE /dev/shm:преоразмеряване на споделена памет

  3. Как да получа MIN() на две полета в Postgres?

  4. Как да добавя ограничения за каскада за изтриване?

  5. Използване на прозоречни функции в изявление за актуализиране