JPA使用单一属性加入条件查询

时间:2012-02-23 15:43:05

标签: hibernate jpa jpa-2.0 criteriaquery

我有两个这样的实体:

EntityX:
id Long
name  String
entityYId  Long


EntityY (this entity is very hard, because it has a lot of data)
id Long
name String
xxx
xxx
.....

我需要做类似

的事情
Root<EntityX> xRoot = criteriaQuery.from(EntityX.class);
Join<EntityX, EntityY> yJoin = xRoot.join("entityYId", JoinType.LEFT);    

我需要yJoin因为我需要JPA标准这个多选:

pId = xRoot.get("id");   
pName = xRoot.get("name");
pEntityYName = yJoin.get("name");

cr.multiselect(
    cb.construct(
      ResultData.class,
      pId,
      pName,
      pEntityYName));

我可以这样做吗?如果不可能,我该怎么做才能解决这个问题,记住!我只需要EntityX中的“entityYId”而不是所有的entityY元素。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以在Root类上使用select方法。有关详细信息,请参阅http://www.objectdb.com/java/jpa/query/jpql/select#SELECT_in_Criteria_Queries_