JPA /获取实体列表作为参考

时间:2013-07-11 13:10:22

标签: java jpa java-ee-6 criteria jpql

EntityManager提供了一个方法getReference()。

在CriteriaBuilder中,JPQL或事件中是否有更类似的东西,它会返回一个实体列表作为引用?

实际我只使用ID并处理新事务中的每个实体。我想避免获取所有实体,因为它会搞乱我的内存使用。

如果我可以使用引用,那么我将是类型安全的,内存开销也没问题。

谢谢!

2 个答案:

答案 0 :(得分:1)

您也可以执行类似

的操作
select idField from YourEntity where ..

并且在您的条件查询中类似,只需使用YourEntity.idField_值。

答案 1 :(得分: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();