Используя стандартный метод saveAll
, начиная с SimpleJpaRepository
, вы в основном вызываете несколько раз, один раз за экземпляр, метод save
@Transactional
public <S extends T> List<S> saveAll(Iterable<S> entities) {
// ... Omitted
for (S entity : entities) {
result.add(save(entity));
}
return result;
}
@Transactional
public <S extends T> S save(S entity) {
if (entityInformation.isNew(entity)) {
em.persist(entity);
return entity;
} else {
return em.merge(entity);
}
}
Вы видите, что используется экземпляр EntityManager
, вызывая persist
или merge
.
Это означает, что применяются его правила, и вы получите ConstraintViolationException .