как то так
@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);
}
}
Затем получить класс (-ы) Репозитория из нового интерфейса BaseJpaRepository
@Repository
public interface MyEntityRepository extends BaseJpaRepository<MyEntity, Long> {
}
И, наконец, в классе конфигурации
@EnableJpaRepositories(
basePackages = { ... },
repositoryBaseClass = BaseJpaRepositoryImpl.class
)
public class RepoConfiguration {
...
}