Il motivo è chiaro dalla documentazione Java,
a favore di saveOrUpdate individuale o unire utilizzo
Come si può vedere l'attuazione del metodo, codice preso dal link,
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 }
Questo metodo è stato meno utilizzato, non può essere all'interno del vostro transazione. Quindi, la primavera ti vuole per iterare la lista e salvare i singoli oggetti.
Il metodo loadAll()
è diverso e utile. Non è simile a saveOrUpdateAll()
.
Avete ragione con le vostre osservazioni che deleteAll()
è simile a saveOrUpdateAll()
e sono d'accordo che è incoerente uno è deprecato e l'altro non lo è.
Grazie Manu, bella spiegazione! Non sapevo che questo metodo non potesse essere usato all'interno della transazione. –