由于不推荐使用hibernate.criteria API,因此我需要协助将某些方法转换为JPA criteriaQuery .

使用单一条件和我可以处理的有限参数的简单调用,但是如何从使用多个根实体创建的休眠条件转换 . 这是需要转换的org.hibernate.criteria代码

Criteria crit = 
session.createCriteria(getType())
.createCriteria("deviceInfo"
.createCriteria("deviceSize");
crit.add(Restrictions.ilike("upperName", modelName));

List<Device> matches = crit.list();

通过对createCriteria的单一调用我可以管理这样的转换 . 他们看起来像这样

CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Workflow> cq = cb.createQuery(getType());
Root<getType()> model = cq.from(getType());
cq.select(model);
cq.where(cb.equal(model.get("primaryEntityId"), entityId));
TypedQuery<getType()> q = entityManager.createQuery(cq);
List<Workflow> matches = q.getResultList();

我似乎无法在JPA中重新创建的唯一内容是传递给createCriteria的两个关联路径