La razón es evidente a partir de los documentos de Java,
a favor de saveOrUpdate individuales o combinar el uso
Como se puede ver la puesta en práctica del método, el código tomado de la 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 }
Este método fue menos utilizada, no puede estar dentro de su transacción. Entonces, la primavera quiere iterar la lista y guardar los objetos individuales.
El método loadAll()
es diferente y útil. No es similar al saveOrUpdateAll()
.
Tiene razón con sus observaciones de que deleteAll()
es similar a saveOrUpdateAll()
y acepto que es inconsistente, una está obsoleta y la otra no.
Gracias Manu, buena explicación! No sabía que este método no puede usarse dentro de la transacción. –