我正在使用 JPA 对象模型构建应用程序,并创建多个数据访问对象以与该模型进行交互。我发现我在不同的数据访问对象之间重复了很多代码(本质上是 CRUD)。唯一不同的是目标 JPA 类。
我想知道是否有人知道可以与任何 JPA 模型一起使用并会生成必要的 DAO(或 CRUD 操作)的抽象库。当然支持所有的一对一、一对多、多对一和多对多关系。
谢谢
PS - 即使不是 JPA 模型,您是否知道这样的库?
您可以使用泛型并将您的 DAO 编码为接口。Spring 文档对此进行了解释。
我建议你看看这篇文章:http ://www.ibm.com/developerworks/java/library/j-genericdao.html 。
它解释了使用 Hibernate 和 Spring AOP 实现通用 DAO 的模式,但可以轻松适应 JPA 命名查询(以及基于 AspectJ 的 AOP,如果您不想使用 Spring)。
基于 Java 反射 API,这个概念是非常可扩展的。例如,我见过使用带注释的方法参数作为命名参数的实现。
我也在寻找一个通用的 DAO 库。这是我发现的。
图书馆:
文章:
如果您想使用针对 Eclipse RCP 应用程序的 JPA 数据模型快速开发您的应用程序,您可以查看http//www.adichatz.org 。目前它仅适用于 Jboss 或 Java SE 模式。
JPA 或 Hibernate 的 DAO 没有任何意义。DAO 的存在是为了隐藏数据库的复杂性中的其他代码。这就是 JPA 和 Hibernate 所做的,非常好。那么,为什么要在 DAO 层中添加 DAO?