farebbe alcuna differenza se faccio:CrudRepository e Hibernate: salvare (Lista <S>) vs salvare (Entity) in un'operazione
@Transactional
public void processData() {
List<MyEntity> entities = ....;
MyEntityRepository.save(entities);
}
vs.
@Transactional
public void processData() {
List<MyEntity> entities = ....;
for (MyEntity entity : entities) {
MyEntityRepository.save(entity);
}
}
Qual è la differenza in termini delle query e delle prestazioni sottostanti?
Se il mio elenco contiene più Entità con la stessa chiave primaria e quindi chiamo 'save (Lista
entità)', fornisce un'eccezione di vincolo. Tuttavia, se itoate (cioè il secondo metodo di business), non si lamenta. Perché? – BPmInteressante. La mia ipotesi è che in qualche modo '@ Transactional' non si applica per' processData() ', quindi nella seconda variante ogni iterazione viene eseguita all'interno del proprio contesto transazionale, quindi ha successo. –