簡體   English   中英

在條件查詢中從父對象獲取子對象的字段。 (休眠/持續)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM