2013-07-11 17 views
0

EntityManager提供了一個方法getReference()。JPA /獲取實體列表作爲參考

CriteriaBuilder中JPQL或事件是否有類似的東西,它會返回一個實體列表作爲引用?

實際上,我只使用ID並在新事務中處理每個實體。我想避免獲取所有實體,因爲這會弄亂我的內存使用。

如果我可以使用引用,我會是類型安全的,內存開銷會沒事的。

謝謝!

+0

謝謝你的答案如何獲得ID。我有一些類似於'getReference()'的想法。在那裏你不僅獲得了實體的ID,還獲得了實體。當然,這些參考實體只包含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();