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

我有以下服务课程:

@Service
class ExampleService {

@Autowired
ARepository aRepository;

@Autowired
BRepository bRepository;

@Autowired
CRepository cRepository;

}


所有存储库接口都扩展

JpaRepository<MatchingClass, Integer>


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

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数据中允许使用它,以及实际上如何正确实现它。

最佳答案

如果您的存储库接口已经在扩展JpaRepository<T, ID>,则您不需要方法deleteOneaddOnegetOne,则可以使用JpaRepository直接方法。

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

aRepository.save(aClassEntity);


检查org.springframework.data.repository.CrudRepository

09-26 05:47