最新的,符合 JPA 的 GenericDAO 实现
Posted
技术标签:
【中文标题】最新的,符合 JPA 的 GenericDAO 实现【英文标题】:Up to date, JPA compliant GenericDAO Implementation 【发布时间】:2011-02-21 16:23:31 【问题描述】:我读了这篇文章:
http://www.ibm.com/developerworks/java/library/j-genericdao.html
几次,相信我明白它在说什么。但是,它已经 4 岁了,我有一个符合 JPA 的 Java 应用程序要处理。另外,我看到 Spring 中有一个 JPATemplate 有一些很好的功能,但是 Spring 文档说它已经被弃用了!
谁能指出一个可靠的、现代的、符合 JPA 的、基于 Spring 的 GenericDAOImpl 工作示例,它代理一个接口以提供通用查找器执行?
【问题讨论】:
【参考方案1】:如今,JPA 2 本身已成为 DAO 层的体面实现,因为它的职责(或合同,如果您愿意)与传统的“精心设计”的 DAO 相同,即业务逻辑与存储的隔离机制。一个重要的含义是,只有在使用电子表格文件、Web 服务等非 DBMS 存储时,您才可能需要显式 DAO。
【讨论】:
【参考方案2】:我创建了一个通用 DAO,混合了我在 this question 上分享的不同方法。我使用这两种方法:DDD: The Generic Repository 和 JPA implementation patterns: Data Access Objects。
如果您认为可以改进,请随时评论/编辑。
【讨论】:
这是一个开始——感谢您的帮助。对我来说,它的一个重要方面是单个 DAO 实现通过一组 DAO 接口执行任何命名查询的能力。 IBM 文章使用了 AOP,但我正在研究一种使用代理对象来实现定义的接口而不使用 AOP 的方法。以上是关于最新的,符合 JPA 的 GenericDAO 实现的主要内容,如果未能解决你的问题,请参考以下文章
GenericDAO 和 NoSuchBeanDefinitionException:没有唯一的 bean Spring 3.0