如何使用我自己的保存声明而不是Spring Data的保存声明?

时间:2019-05-13 19:33:27

标签: spring-boot spring-data-jpa spring-data

我在spring-boot中从1.5升级到2.1,并将CRUDRepository方法之一的save()更改为saveAll,随着返回类型的改变。有人可以让我知道如何返回saveAll而不是save。

我试图创建一个将save()扩展到saveAll()的包装器。

1 个答案:

答案 0 :(得分:1)

类似这样的东西

metrics

然后从新的BaseJpaRepository接口派生Repository类(-es)

@NoRepositoryBean
public interface BaseJpaRepository<T, ID extends Serializable> extends JpaRepository<T, ID> {

    <S extends T> List<S> save(Iterable<S> entities);
}

@NoRepositoryBean
public class BaseJpaRepositoryImpl<T, ID extends Serializable> extends SimpleJpaRepository<T, ID> implements BaseJpaRepository<T, ID> {

    private final EntityManager em;

    public BaseJpaRepositoryImpl(JpaEntityInformation<T, ID> entityInformation, EntityManager em) {
        super(entityInformation, em);
        this.em = em;
    }

    @Override
    public <S extends T> List<S> save(Iterable<S> entities) {
        return saveAll(entities);
    }
}

最后是配置类

@Repository
public interface MyEntityRepository extends BaseJpaRepository<MyEntity, Long> {

}