根据这篇文章,通用 JPA DAO(数据访问对象)是一个非常好的模式。
有什么好的实现吗?
您可以查看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)
也支持类似的方法。
只想为 JPA 提几个更通用的 dao 实现:
Querydsl支持 JPA,并广泛支持为查询构建复杂的谓词。
它不支持更新和插入,但您可以使用 Spring Data,因为 Querydsl 还与 Spring 存储库集成。