[英]Getting the field of a child object from a parent object in criteria query. (Hibernate/Persistence)
我有一個對象(A),它的字段包含另一個object
(B),而B有一個long
型字段。 我希望能夠在條件查詢中訪問B的long類型字段。
在示例代碼中,我們看到了如何獲取對象的字段,但是有沒有一種方法可以像示例代碼所示那樣獲取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" ));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.