gpt4 book ai didi

java - 如果违反约束,CrudRepository saveAll 方法将引发异常

转载 作者:行者123 更新时间:2023-12-02 10:02:39 33 4
gpt4 key购买 nike

我正在使用 spring data JPA 将数据保存到数据库中。CRUDRepository 有我正在使用的 saveAll(Iterable) 方法。

由于我对实体字段有唯一的约束,因此我想知道如果我尝试保存包含违反此约束的对象的 Interable 会发生什么。

最佳答案

使用标准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使用实例,调用 persistmerge .
这意味着它的规则适用,您将收到 ConstraintViolationException .

关于java - 如果违反约束,CrudRepository saveAll 方法将引发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55523746/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com