我用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>
,则您不需要方法deleteOne
,addOne
,getOne
,则可以使用JpaRepository
直接方法。
例如,只需从您的服务中调用方法delete
,save
,findOne
等:
aRepository.save(aClassEntity);
检查
org.springframework.data.repository.CrudRepository
。