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.
Danke Manu, nette Erklärung! Ich wusste nicht, dass diese Methode nicht innerhalb der Transaktion verwendet werden kann. –