【发布时间】:2011-10-05 09:01:36
【问题描述】:
我们的 web 项目使用 spring3、Jpa (hibernate)。
为了节省 CRUD 和其他常用方法,我们将 repositories 设为 spring JpaRepository 的子类。
有时我只是将存储库注入到 Controller 中,方便那些简单(或没有)业务逻辑只读数据访问。例如在视图中列出一个实体类型的所有对象...我知道所有这些都应该在具有事务范围的服务层中完成,但是确实很方便。
现在有一个规则:控制器层必须通过服务访问数据层。不允许将存储库注入控制器。
例如:
我有一个实体:Country.java
我有interface CountryRepository extends JpaRepository<Country, Long>
我还有 CountryService 和 CountryServiceImpl,它们注入了 countryRepository。然后我要创建findAll、findOne、count、findAll(withsorting)....方法,而那些实现无非就是return countryRepository.findAll() countryRepository.findOne(id) countryRepository.count()...
对于每个实体,我必须一次又一次地做同样的事情......
是否可以在服务层使用通用方式保存这些方法?
【问题讨论】:
标签: java spring jpa repository