我用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数据中是否允许使用它,实际上如何正确地完成它。
答案 0 :(得分:1)
如果您的存储库接口已经扩展JpaRepository<T, ID>
,那么您不需要方法deleteOne
,addOne
,getOne
,您可以使用{{JpaRepository
中的方法1}} direclty。
例如,只需从您的服务中调用方法delete
,save
,findOne
等:
aRepository.save(aClassEntity);
检查org.springframework.data.repository.CrudRepository
。