我有一种方法可以快速获取一个 Element。为此,我想使用 id。如果我使用 (root.fetch) 加载eager,则此查询会导致空结果。但没有它,它的工作原理!为什么?
@Override
public Request getRequestById(int id) {
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<Request> criteriaQuery = criteriaBuilder.createQuery(Request.class);
Root<Request> root = criteriaQuery.from(Request.class);
Predicate equals = criteriaBuilder.equal(root.get("id"), id);
root.fetch("products",JoinType.INNER);
root.fetch("productiveShifts",JoinType.INNER);
criteriaQuery.where(equals);
return entityManager.createQuery(criteriaQuery.select(root)).getResultList().get(0);
}
慕容3067478
相关分类