了解所有实体共有的Spring Data JPA存储库

时间:2012-07-20 13:57:00

标签: spring repository spring-data-jpa

我参考了以下Spring文档:http://static.springsource.org/spring-data/data-jpa/docs/1.1.0.RELEASE/reference/html/#repositories.custom-behaviour-for-all-repositories

我正在尝试理解上面描述的Jpa自定义存储库背后的逻辑。

我的猜测是我必须创建 UserRepository 界面(在我的情况下用户是特定实体),扩展 MyRepository 界面,然后使用适当的参数类型为其提供实现。然后,每个实体都有一个存储库,每个存储库共享 MyRepository 接口中定义的许多常用方法。

这引出了一些问题:

一:如果我在多个实体上执行操作怎么办?我使用哪个存储库? 二: Spring Data Jpa是否允许没有任何类型参数的存储库?

1 个答案:

答案 0 :(得分:3)

  

如果我跨多个实体执行操作:我使用哪个存储库?

会导致“ DAO per entity ”方法(不一定是最好的方法)。如果您需要跨多个实体执行操作,请使用服务层。

  

Spring Data Jpa是否允许没有任何类型参数的存储库?

不,你能为此建议一些用例吗?每个DAO应为一个实体提供强大的,类型安全的接口。如果你需要更灵活的DAO,也许你应该在JPA中探索继承?