2012-04-13 6 views

Antwort

10

der Grund der Java-Dokumentation ist klar,

zugunsten einzelner saveOrUpdate oder fusionieren Nutzung

Wie Sie die Implementierung des Verfahrens sehen können, Code aus dem link genommen,

public void saveOrUpdateAll(final Collection entities) throws DataAccessException { 
768   executeWithNativeSession(new HibernateCallback() { 
769    public Object doInHibernate(Session session) throws HibernateException { 
770     checkWriteOperationAllowed(session); 
771     for (Iterator it = entities.iterator(); it.hasNext();) { 
772      session.saveOrUpdate(it.next()); 
773     } 
774     return null; 
775    } 
776   }); 
777  } 

Diese Methode war weniger verwendet, kann sie nicht in Ihrer Transaktion. Also, Spring möchte, dass Sie die Liste durchlaufen und die einzelnen Objekte speichern.

Die Methode loadAll() ist anders und nützlich. Es ist nicht ähnlich zu saveOrUpdateAll().

Sie haben Recht mit Ihren Beobachtungen, dass deleteAll() ist ähnlich zu saveOrUpdateAll() und ich stimme zu, dass es inkonsistent ist, ist eine veraltet und die andere ist nicht.

+0

Danke Manu, nette Erklärung! Ich wusste nicht, dass diese Methode nicht innerhalb der Transaktion verwendet werden kann. –