有没有好的通用 JPA DAO 实现?

Posted

技术标签:

【中文标题】有没有好的通用 JPA DAO 实现?【英文标题】:Is there any good generic JPA DAO implemenation? 【发布时间】:2012-06-19 00:19:25 【问题描述】:

根据this article,通用 JPA DAO(数据访问对象)是一个非常好的模式。

有什么好的实现吗?

【问题讨论】:

【参考方案1】:

您可以查看Spring Data JPA。

在 Spring Data JPA 中引入了一些新概念,例如基于方法名称的查询创建,因此您可以声明像 findById(String id) 这样的方法,“通用”实现将解释方法的名称并执行类似的操作select Entity from Entity where id = 'given string'

也支持findByNameAndLastName(String name, String lastName) 甚至findByNameOrInternalId(String name, int internalId) 等方法。

【讨论】:

一定要看看这个。我没用过,但看过一个关于它的研讨会,看起来很棒。 @KevinWelker:这个想法太酷了,如果我们进一步看,它并没有那么复杂,我很惊讶之前没有人想到这个......【参考方案2】:

只想提几个更通用的 JPA dao 实现:

通用 DAO 工具包 - http://code.google.com/p/generic-dao/ SO 中的相关问题 - Single DAO & generic CRUD methods (JPA/Hibernate + Spring) 一篇很好的博客文章 JPA DAO - http://blog.xebia.com/2009/03/09/jpa-implementation-patterns-data-access-objects/

【讨论】:

博客文章其实和我链接的一样。 :) T【参考方案3】:

Querydsl 支持 JPA,并广泛支持为查询构建复杂的谓词。

它不支持更新和插入,但您可以使用 Spring Data,因为 Querydsl 还与 Spring 存储库集成。

【讨论】:

以上是关于有没有好的通用 JPA DAO 实现?的主要内容,如果未能解决你的问题,请参考以下文章

七springboot整合Spring-data-jpa之通用DAO接口与添加自定义方法

如何测试休眠通用 dao 模式

Spring Boot-------JPA——EntityManager构建通用DAO

通用Hibernate-Dao

如何仅使用 java 和 jdbc(无 ORM)为基本的 crud 操作实现通用 DAO?

Spring Transactions 和通用 DAO 和服务的最佳实践