EntityManager 提供了一个方法 getReference()。
JPQL 中是否有类似的东西或 CriteriaBuilder 中更好的事件,它会返回实体列表作为参考?
实际上,我只使用 ID 并在新事务中处理每个实体。我想避免获取所有实体,因为它会弄乱我的内存使用。
如果我可以使用引用,我将是类型安全的,并且内存开销也可以。
谢谢!
你也可以做类似的事情
select idField from YourEntity where ..
同样在您的条件查询中,只需使用该YourEntity.idField_
值。
为了确保标准情况下的类型安全,您可以这样做:
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();