用于开发 GenericDao 的最佳 Spring API

Posted

技术标签:

【中文标题】用于开发 GenericDao 的最佳 Spring API【英文标题】:Best Spring API for developing GenericDao 【发布时间】:2012-02-17 03:33:06 【问题描述】:

我看到很多关于 spring jpa 的实现技术(jpatemplate,japdaosupport spring-data-jpa ,native way entitymanager,HibernateSupport,ect ),这是开发通用 DAO 的最佳技术,应该是干净的资源分配、事务管理和高性能。 有什么好处和坏处

场景

实体 >70 网络应用和网络服务 未来的 osgi 支持和多个数据源

【问题讨论】:

这取决于:D!什么是 GenericDao? 用于保存、更新、删除、findByID、findAll(paging)、findByQuery、findByNamedQuery 等 【参考方案1】:

我认为最好的方法是坚持使用@PersistentContext 来处理EntityManager 的实例,并将它们注入到一些第三方通用dao 中。您可以自己编写一个,使用 @Ralph 提到的 spring-data 或尝试像 Hades 这样的库。

【讨论】:

【参考方案2】:

Spring-data-jpa 带有一个已经很完整的 GenericDao(包含你提到的所有东西),但据我所知,每个具体的 dao 至少需要一个(空)接口。

【讨论】:

以上是关于用于开发 GenericDao 的最佳 Spring API的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Google GenericDAO 中的 Seach 和 Filter 类来搜索未映射的类对象?

将分离的实体合并到 JPA 中的实体管理器的最佳方法是啥

如何使用 QueryDSL 构建 GenericDao?

最新的,符合 JPA 的 GenericDAO 实现

GenericDAO 和 NoSuchBeanDefinitionException:没有唯一的 bean Spring 3.0

GenericDAO 与 Guice,玩泛型和 ParameterizedType