- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 Hibernate 4.x 的应用程序,它目前正在使用 native Hibernate API(意味着我有一个 SessionFactory
和 Session
s)。我只是noticed不推荐使用现有的 Criteria API 以支持 JPA 的(高级)Criteria API:
Hibernate offers an older, legacy
org.hibernate.Criteria
API which should be considered deprecated. No feature development will target those APIs. Eventually, Hibernate-specific criteria features will be ported as extensions to the JPAjavax.persistence.criteria.CriteriaQuery
.
EntityManager
直接(即使很容易从那里获得 Hibernate
Session
),因为我们有大量需要替换的自定义 Hibernate 配置逻辑。尽管如此,我绝对想开始使用 JPA Criteria API,因为旧的 API 已被弃用(并且可能会在将来的某个随机点消失,如果过去的 Hibernate 版本有任何迹象的话),并且它们还提供了更好的类型安全性。
最佳答案
我们的项目也面临同样的困境。
项目真的很复杂:90%的实体都是动态生成的;在Hibernate标准API之上实现了API级别,重DAO和服务层,使用非常广泛;我们的 hibernate 版本已多次修补以支持特定功能(如 START WITH
/CONNECT BY
、 ARRAY
键入 oracle 等); postgresql 和 oracle 两者都使用,或者等。
新的 JPA API 对我们非常有用。我们需要能够在 Criteria API(而非 HQL)级别使用函数(例如 NVL/coalesce
出于某种性能原因, substring
、 trim
等)。
此外,我们需要 Hibernate Envers,它仅适用于“EntityManager
”JPA 实现。
不幸的是,根据我们的研究结果,根本无法使用来自本地 Hibernate 的 JPA Criteria API。 Envers也不能用。
Hibernate 项目不断发展并获得新功能。
迁移到新的 hibernate 版本对我们来说是一项非常复杂的任务。并且我们非常担心在迁移后无法使用新版本的许多新功能并随着这个基本框架增长。
因此,我们为我们考虑了两种可能的方法:使用 SQLCriterion
自己实现 Expression
s(使用 CriteriaQuery
解析列名并转换为 SQL)或迁移到“EntityManager
”/CriteriaBuilder
.第二种方式看起来不可避免。但是迁移到 JPA 实现带来了许多隐藏的问题,这些问题毁了我们的项目。
如果我们选择迁移并且它会很有用,我将在这里留下我们将在此事件中遇到的问题。
关于hibernate - 来自 Hibernate Session 的 JPA 样式 Criteria/CriteriaBuilder 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14406185/
我正在尝试更改以下 HQL 以使用 JPA 标准: select distinct d from Department d left join fetch d.children c where d.p
我对 CriteriaBuilder API 有疑问: 我想计算一列的结果,并返回该计数的结果以及该列的不同值的列表。 | Table_fruit | count(Tab
有什么区别: 在 Builder 上的第一次测试运行: Predicate predicate = root.get(PersonEntity_.name).in(names); criteriaBu
我正在开发一个经常使用 CriteriaBuilder.Coalesce 的大型代码库。和 Root 。例如, criteriaBuilder.coalesce(root.get('adjustedW
我有这样的代码 @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true) public Re
我必须重写一些代码,但在互联网上找不到正确的信息。原始部分如下所示: String query = "select * from sublog_type_map_v where 1 = 1"; if
这是我从 CriteriaBuilder 获得的 hibernate 查询: select generatedAlias0 from MyObject as generatedAlias0 where
SELECT * FROM Emp_Main WHERE status = 'QUIT' AND to_Char(effective_date,'YYYY')= '2018'; 在此示例中,我已将代码
我正在尝试使用 @Embeddable与 CriteriaBuilder过滤父结果 Entity基于嵌入的属性。我使用 Eclipse Link 来生成元数据类。 这是嵌入的类/实体: @Embedd
谁能提供一个如何使用 CriteriaBuilder 编写案例查询的示例? 最佳答案 以下是使用 CriteriaBuilder 的示例 case 表达式(这适用于 JPA 2): Hashtable
我想写这个SQL查询 SELECT * FROM A LEFT OUTER JOIN B ON A.IDRESOURCE=B.IDRESOURCE AND B.IDLANGUAGE=22; 使用 J
我想将日期与数据库中的时间戳进行比较。我目前使用的是 predicates.add(criteriaBuilder.between(eventRoot.get("time"), dBegin, dEn
使用 Criteriabuilder 编写查询时,如何在两列上添加相等条件?例如: CriteriaBuilder cb = entityManager.getCriteriaBuilder(); C
我有一个实体 @Entity @Table(name = "`petition`") @Getter @Setter public class Petition extends Auditable {
嗯,我正在使用 CriteriaBuilder 和 PredicateList 来处理 JPA 并从数据库中提取信息,事实是它包含带重音的数据,我需要进行搜索,即使我搜索不带重音的单词,我也会找到带重
我有一个要附加到 or 条件中的列表 我面临的问题是当我遍历 List 并将其添加到 CategoryBuilder 然后它采用最后一个 Predicate 例子如下: public static S
我正在尝试计算给定的纬度/经度和距离,并且只返回落在该圆距离内的行(数据库也有纬度/经度坐标)。我不知道的是我会怎么做。我目前正在使用 native SQL 并使用纯文本和计算它的半正弦公式,如果我是
我正在尝试了解如何从联接中仅选择记录上的最新日期。我的 People 实体与 Membership 实体相结合。我的成员(member)实体有一个 RefMembershipStatus 实体。我试图
我目前正在这样。 final CriteriaBuilder builder = ...; final boolean flag = ...; if (flag) { builder.isTr
我有这样的 SQL 语句: SELECT * FROM person inner join (select max(validityId) as maxID from person group by
我是一名优秀的程序员,十分优秀!