Запрос критериев присоединения JPA с единичным атрибутом - PullRequest
1 голос
/ 23 февраля 2012

У меня есть 2 сущности, подобные этим:

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));

Могу ли я это сделать?Если это невозможно, что я могу сделать, чтобы решить это, ПОМНИТЕ!Мне нужно только "entityYId" в EntityX, а не все элементы entityY.

Спасибо!

1 Ответ

1 голос
/ 23 февраля 2012

Вы можете использовать метод select в классе Root.См. http://www.objectdb.com/java/jpa/query/jpql/select#SELECT_in_Criteria_Queries_ для получения дополнительной информации

...