2012-04-13 14 views

risposta

10

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 è.

+0

Grazie Manu, bella spiegazione! Non sapevo che questo metodo non potesse essere usato all'interno della transazione. –

Problemi correlati