2013-07-11 2 views
0

EntityManager предоставляет метод getReference().JPA/Получить список объектов как ссылки

Есть ли что-то подобное в JPQL или событии в пределах CriteriaBuilder, которое вернет список объектов так же, как ссылки?

Фактически я использую только идентификатор и обрабатываю каждый объект в новой транзакции. Я хочу избежать получения всех объектов, потому что это испортит использование моей памяти.

Если бы я мог использовать ссылки, я был бы безопасным по типу, и накладные расходы памяти были бы в порядке.

Спасибо!

+0

Спасибо за ответы, как получить идентификатор. У меня было что-то похожее на 'getReference()' в виду. Там вы получаете сущность не только идентификатор объекта. Конечно, эти ссылочные объекты содержат только ID, но все же у меня есть выделенный класс вместо 'Long'. Я думаю, нет ничего похожего на 'getReference()', чтобы получить список ссылок – user1654894

ответ

1

Вы также могли бы сделать что-то вроде

select idField from YourEntity where .. 

и аналогичным образом в запросе критерии, просто используйте значение YourEntity.idField_.

0

для обеспечения безопасности типа в критериях случае, вы можете сделать это:

CriteriaQuery<Long> criteria =criteriaBuilder.createQuery(entityClass); 
Root<T> r=criteria.from(entityClass); 

//Where clauses 

criteria.select(r.<Long>get("id")); 

TypedQuery<Long> query=entityManager.createQuery(criteria); 
List<Long> result=query.getResultList(); 
Смежные вопросы