这个想法是创建一个通用的存储库类,如下所示:
@NoRepositoryBeanpublic interface AbaseRepository<T extends A> extends CrudRepository<T, Long> { // All methods in this repository will be available in the ARepository, // in the BRepository and in the CRepository. // ...}然后我可以用这种方式编写三个存储库:
@Transactionalpublic interface ARepository extends AbaseRepository<A> { }@Transactionalpublic interface BRepository extends AbaseRepository<B> { }@Transactionalpublic interface CRepository extends AbaseRepository<C> { }此外,要获得一个只读存储库,
ARepository我可以将其定义
AbaseRepository为只读:
@NoRepositoryBeanpublic interface AbaseRepository<T> extends Repository<T, Long> { T findOne(Long id); Iterable<T> findAll(); Iterable<T> findAll(Sort sort); Page<T> findAll(Pageable pageable);}并且
BRepository还扩展了Spring Data JPA
CrudRepository来实现读/写存储库:
@Transactionalpublic interface BRepository extends AbaseRepository<B>, CrudRepository<B, Long> { }


