我有点困惑于一些基本的Spring数据概念。
如我所知,典型的DAO级别结构如下所示:
- dao
- MyFirstObjectDao
- MySecondObjectDao
- jpa
- MyFirstObjectDaoImpl
- jdbc
- MySecondObjectDaoImpl有了这个概念,我可以使用JPA作为我的第一个DAO接口和JDBC -第二个接口的实现。
现在,我想了解Spring抽象。每个Spring数据教程都指定,我应该有一个接口,它应该从JpaRepository扩展,例如。有了这个接口,我已经锁定了JPA,对吧?
如果我想提供不同的实现,比如DAO中的jpa/jdbc,该怎么办?
发布于 2015-12-05 23:19:11
对于相同的对象,通常没有很好的理由将JPA和JDBC持久化混为一谈;如果您已经将所有东西注释为JPA实体,那么您最好在任何地方都使用相同的持久性设置。你应该重新考虑一下你为什么要这么做。
尽管如此,如果您确实需要这样做的话,您可以这样做:
interface FooBaseRepository extends PagingAndSortingRepository<Long, Foo> {}
interface FooJpaRepository extends FooBaseRepository, JpaRepository<Long, Foo> {}
interface FooJdbcRepository extends FooBaseRepository, JdbcRepository<Long, Foo> {}
@Autowired FooBaseRepository surpriseRepository更新:如果您只是在谈论针对不同类(没有关系)有不同的持久性策略,那么没有什么特别复杂的。您可以混合Jpa和Jdbc存储库;它们只是接口。
https://stackoverflow.com/questions/34112008
复制相似问题