Spring Data JpaRespositories整合

时间:2018-03-09 10:34:44

标签: java spring spring-data-jpa

我用Spring Boot编写了一个Web应用程序,现在我遇到了以下问题:

我有以下服务类:

@Service
class ExampleService {

@Autowired
ARepository aRepository;

@Autowired
BRepository bRepository;

@Autowired
CRepository cRepository;

}

所有存储库接口都扩展了

JpaRepository<MatchingClass, Integer>

现在我想为每个存储库执行以下crud操作:

public List<AClass> getAll() {
    List<AClass> aElements = new List<>();
    aRepository.findAll().forEach(x->aElements.add(x));
    return aElements;
}

public AClass getOne(Integer id) { return aRepository.getOne(id);}

public void addOne(AClass aClass) { aRepository.save(aClass);}

public void deleteOne(Integer id) {aRepository.delete(id);}

}

如何在不重复使用不同参数类型的方法的情况下实现它?我对java中的泛型有基本的了解,但我不确定在spring数据中是否允许使用它,实际上如何正确地完成它。

1 个答案:

答案 0 :(得分:1)

如果您的存储库接口已经扩展JpaRepository<T, ID>,那么您不需要方法deleteOneaddOnegetOne,您可以使用{{JpaRepository中的方法1}} direclty。

例如,只需从您的服务中调用方法deletesavefindOne等:

aRepository.save(aClassEntity);

检查org.springframework.data.repository.CrudRepository