PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Błąd hibernacji:bieżąca transakcja jest przerwana, polecenia ignorowane do końca bloku transakcji

Prawdopodobnie oznacza to, że niektóre z Twoich zapytań nie zostały wykonane. Jeśli masz wiele zapytań w transakcji, np.

  • rozpocznij transakcję
  • zapytanie1
  • zapytanie2
  • zapytanie3
  • zakończ transakcję

a query2 wyrzuca błąd, wtedy gdy próbujesz wykonać query3, pojawia się ten błąd.

  • rozpocznij transakcję
  • zapytanie1 (udane)
  • zapytanie2 (błąd, coś poszło nie tak)
  • query3 (wyjątek taki jak twój jest rzucany)
  • zakończ transakcję

Powinieneś obsłużyć wyjątek zgłoszony z query2 i obsłużyć go. Pokaż błąd użytkownikowi, wycofaj transakcję, nigdy nie próbuj wykonać zapytania3.

Spójrz też tutaj:http://www.faqs.org/docs/ppbook/x15040 .htm

AKTUALIZUJ

Aby zakończyć transakcję:

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. Instalacja PostgresSQL nie powiodła się:inicjalizacja klastra bazy danych nie powiodła się MAC OS

  2. Węzeł jest 20 razy szybszy niż .NET Core podczas łączenia się z Postgres

  3. Jak mogę utworzyć wymagany typ posiadany za pomocą Entity Framework Core 3.0?

  4. Jak przekazać NEW.* do EXECUTE w funkcji wyzwalania?

  5. Zapytanie między serwerami PostgreSQL?