繁体   English   中英

Hibernate 3 - 5 迁移。 Org.hibernate.Criteria:使用 CriteriaBuilder 将 createCriteria(String association, String alias) 更改为标准 JPA

[英]Hibernate 3 - 5 Migration. Org.hibernate.Criteria: Changing createCriteria(String association, String alias) to standard JPA using CriteriaBuilder

所以我有这个 Hibernate Criteria 代码,我想使用 JPA 进行更改,我已经对下面引用的它进行了更改,但我似乎无法找到替代方法来使用 detCrit.createCriteria(String association,字符串别名)使用 JPA 的 CriteriaBuilder。 如果有人知道替代解决方案,我将不胜感激。

\\\Initial Hibernate Criteria code

Criteria deCrit = currentSession().createCriteria(first.class, "firstbasic");
Criteria secondThemeCrit = detCrit.createCriteria("secondBasic","sc");
Criteria thirdThemeCrit = secondThemeCrit.createCriteria("thirdBasic");
\\\Partially changed code with JPA

CriteriaBuilder builder = Session.getCriteriaBuilder();
CriteriaQuery<First> deCrit = builder.createQuery(First.class);
Root<First> first = detCrit.from(First.class);
first.alias("firstbasic");

我不知道您之后如何使用此代码,但我假设在子查询中? 如果是这样,您可以将子查询中的根与相关对象上的 just call join 相关联,这应该导致相同的结果:

CriteriaBuilder builder = Session.getCriteriaBuilder();
CriteriaQuery<First> deCrit = builder.createQuery(First.class);
Root<First> first = detCrit.from(First.class);
Subquery<Integer> subquery = deCrit.subquery(Integer.class);
Root<First> correlatedFirst = subquery.correlate(first);
Join<First, Second> second = correlatedFirst.join("second");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM