java - 你喜欢 JPA 2.0 的 Criteria api 吗?你在框架中使用它吗?

标签 java hibernate jpa criteria jpa-2.0

<分区>

我习惯于在 Hibernate 中使用 Criteria API,只是观察了 JPA 2.0 中的 Criteria 是如何工作的。

在 Hibernate 的 Criteria 中,我最喜欢的是我们可以轻松地使用 Criterions 进行组合。

JPA Criteria 对我来说似乎很重,而且不如 Hibernate Criteria 流畅。 对我来说,与 Hibernate 相比的主要好处之一似乎是元模型(Entity_.java 类)的使用,但它仍然有点重,因为您必须维护 2 个类,或添加一个注释处理器(尽管它很容易与 Maven 插件集成)

我读过一篇关于 SpringSource 的博客,它允许降低使用“JPA 谓词”进行组合的复杂性,并且有点像使用 Hibernate 中的标准。

Querydsl 项目看起来很有趣。

http://blog.springsource.com/2011/04/26/advanced-spring-data-jpa-specifications-and-querydsl/

只是想知道,对于那些使用 JPA2 的人,您使用的是 Criteria API 还是它对您来说有点太重了?

对于那些熟悉 Hibernate Criteria 并且现在使用 JPA Criteria 的人来说,您最喜欢哪种方法,为什么?

您是否正在考虑使用或使用类似 Querydsl 或 Spring Specifications over JPA2 的框架来构建您的查询谓词? 您认为这些框架是否成熟到可以采用的程度?

最佳答案

我只能提供一个有偏见的意见,因为我是Querydsl的维护者,但我认为Querydsl和Spring Specifications都足够成熟。两者都在 JPA 2 之上提供了一个薄层,Querydsl 为查询构造提供了流畅的 DSL,为 DAO/存储库构造提供了 Spring Data 模式。

Querydsl的表现力堪比HQL/JPQL。

这里有一些 JPA 2 条件查询和它们的 Querydsl 版本:http://source.mysema.com/forum/mvnforum/viewthread_thread,49

我们在论坛中提供快速的错误修复周期和响应式支持。 Querydsl团队与Spring、DataNucleus等各方合作,完善Java中类型安全查询的现状。

关于java - 你喜欢 JPA 2.0 的 Criteria api 吗?你在框架中使用它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5908905/

相关文章:

java - 安卓:IOException:权限被拒绝

java - 仅一个窗口的全屏独占模式按键输入

java - 带有继承的 SessionFactory 的 Spring 注入(inject)给 NullPointers

java - 使用 BLOB 或 TEXT/CLOB 在字段中保存 HTML 数据

java - JPA:读取并坚持一个事务,同时阻塞不同线程中的读取

java - 如何在 Spring 中 @Autowire scala 对象

java - 推荐用于 Swing 应用程序或替代库的通用 CSS 引擎

java - 使用 Hibernate Envers 审核可嵌入实体

java - 我在 JPA 查询期间遇到转换类型错误,有效转换的最佳方法是什么?

java - 在 Tomcat 上部署的 WAR 中的 JPA 功能