有没有好的通用 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接口与添加自定义方法
Spring Boot-------JPA——EntityManager构建通用DAO