Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果违反约束,则CrudRespository saveAll方法引发异常_Java_Hibernate_Spring Boot_Spring Data Jpa - Fatal编程技术网

Java 如果违反约束,则CrudRespository saveAll方法引发异常

Java 如果违反约束,则CrudRespository saveAll方法引发异常,java,hibernate,spring-boot,spring-data-jpa,Java,Hibernate,Spring Boot,Spring Data Jpa,我正在使用SpringDataJPA将数据持久化到数据库中。 crudepository具有我正在使用的saveAll(Iterable)方法 因为我在实体字段上有一个唯一的约束,所以我想知道如果我试图保存一个包含违反该约束的对象的Interable,会发生什么 使用标准的saveAll方法,从simpleparepository,基本上可以多次调用save方法,每个实例一次 @Transactional public <S extends T> List<S> save

我正在使用SpringDataJPA将数据持久化到数据库中。 crudepository具有我正在使用的saveAll(Iterable)方法


因为我在实体字段上有一个唯一的约束,所以我想知道如果我试图保存一个包含违反该约束的对象的Interable,会发生什么

使用标准的
saveAll
方法,从
simpleparepository
,基本上可以多次调用
save
方法,每个实例一次

@Transactional
public <S extends T> List<S> saveAll(Iterable<S> entities) {
    // ... Omitted

    for (S entity : entities) {
        result.add(save(entity));
    }

    return result;
}
@Transactional
公共列表saveAll(可编辑实体){
//…省略
对于(S实体:实体){
结果.添加(保存(实体));
}
返回结果;
}

@Transactional
公共存储(S实体){
if(entityInformation.isNew(实体)){
em.persist(实体);
返回实体;
}否则{
返回em.merge(实体);
}
}
您可以看到使用了
EntityManager
实例,调用
persist
merge

这意味着它的规则适用,您将收到一份通知

@Transactional
public <S extends T> S save(S entity) {
    if (entityInformation.isNew(entity)) {
        em.persist(entity);
        return entity;
    } else {
        return em.merge(entity);
    }
}