JpaRepository与CRUDRepository findAll

Vad*_*huk 18 spring-data spring-data-jpa

我有一个简单的问题:为什么JpaRepository返回实体列表但CrudRepository返回Iterable实体?

这是故意的吗?我想这是因为CrudRepository是更通用的接口,可能有一些特定的存储库返回Iterable.

在不使用特定的JpaRepository的情况下使用CrudRepository会更加困难.

谢谢

man*_*ish 25

该类CrudRepository是Spring Data Commons项目的一部分,无论使用何种实际数据存储,它都是推荐的扩展接口.

究其原因CrudRepository方法返回Iterable,而不是List(或Set)是因为有些数据存储允许的结果流并使用Collection类型会导致这类门店的功能丧失.

  • 为了解决您在问题中提到的问题,您可以始终使用`interface BaseRepository <T,ID> extends CrudRepository <T,ID> {@Override List <T> findAll(); }`.这也是`JpaRepository`的作用.这样,您可以坚持使用通用的`CrudRepository`并仍然获得您正在寻找的相同功能(`Collection.size()`等). (7认同)