在条件查询中从父对象获取子对象的字段.(休眠/持久性)



我有一个对象(A(,它有一个包含另一个object(B(的字段,B有一个long类型的字段。我希望能够在条件查询中访问 B 的长类型字段。

在示例代码

中,我们看到了如何获取对象的字段,但是有没有办法以类似于示例代码的方式获取objectA.objectB.field?

我找到了此示例代码:

CriteriaQuery<Integer> criteria = builder.createQuery( Integer.class );
Root<Person> personRoot = criteria.from( Person.class );
criteria.selec(1)t( builder.max( personRoot.get( Person_.age ) ) );
criteria.where( builder.equal( personRoot.get( Person_.eyeColor ), "brown" ) );
Integer maxAge = em.createQuery( criteria ).getSingleResult();

通过指定连接类型从根创建连接

Join<ObjectA, ObjectB> objectBJoin = personRoot.join("objectB", JoinType.INNER);

答案是我们可以在每个函数中使用多个 get 函数。

例:

criteria.where(builder.equal(ParentClass.get("ChildClass").get("FieldOfChildClass"), "value" ));

最新更新