2016-07-25 10 views
0

Ich versuche, die Objekte in der Schleife zu speichern, aber es funktioniert nicht, zunächst wird die Zeile in die Tabelle eingefügt und dann wird dieselbe Zeile für jede Schleife aktualisiert.Wie speichern Sie die Objekte in einem Loop in HIbernate?

PFB mein Code.

von getObjectList-Methode, bekomme ich eine Liste von Objekten aus der Datenbank und durchlaufen in der Schleife. Wenn ich versucht habe, das Objekt des ConfirmDisposalAction-Modells zu speichern, wird später nur ein Zeileneintrag und die gleiche Zeile aktualisiert.

Bitte lassen Sie mich wissen, Wie kann ich dieses Problem beheben?

Schätzen Sie für Hilfe :)

Antwort

0

Sie sollten nicht alle Objekte in der Schleife sparen, versuchen die Stapelverarbeitung zu verwenden.

Session session = sessionFactory.openSession(); 
    Transaction transaction = session.beginTransaction(); 
    try { 
     session.doWork(new Work() { 
      public void execute(Connection connection) throws SQLException { 
       Statement statement = connection.createStatement(); 
       for (Object obj : list) { 
        String str = ""; 
        statement.addBatch(str); 
        statement.executeBatch(); 
      } 
     }); 
    } catch (Exception ex) { 
     SystemUtils.logException(ex); 
     LOGGER.warn("Error ", ex); 
    } finally { 
     session.flush(); 
     transaction.commit(); 
     session.close(); 
    } 

Dies wird Ihre Aufgabe in Einzelabfrage erledigen.