sql >> Database teknologi >  >> RDS >> PostgreSQL

Dvale fejl:aktuelle transaktion afbrydes, kommandoer ignoreret indtil slutningen af ​​transaktionsblok

Det betyder sandsynligvis, at nogle af dine forespørgsler ikke blev udført. Hvis du har mange forespørgsler i transaktionen, f.eks.

  • begynd transaktionen
  • forespørgsel1
  • forespørgsel2
  • forespørgsel3
  • afslut transaktionen

og query2 kaster fejl, så når du prøver at udføre query3 får du denne fejl.

  • begynd transaktionen
  • forespørgsel1 (lykket)
  • forespørgsel2 (fejl, noget gik galt)
  • forespørgsel3 (undtagelse som din er kastet)
  • afslut transaktionen

Du bør håndtere undtagelser smidt fra query2 og håndtere det. Vis en fejl til brugeren, rollback-transaktion, prøv aldrig at udføre forespørgsel3.

Se også her:http://www.faqs.org/docs/ppbook/x15040 .htm

OPDATERING

For at afslutte transaktionen:

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. Uddrag specifikke ord fra tekstfeltet i mysql

  2. Er det muligt at udføre en databaseindsættelse fra Windows-kommandolinjen?

  3. Måneder mellem ikke at returnere korrekt værdi

  4. Kan nogen forklare, hvad postgresql-client er, og hvordan det interagerer med postgresql-kernepakken?