【发布时间】:2016-05-21 06:32:51
【问题描述】:
我是 JPA 标准 API 的新手。
2 个问题:
- 如何进一步简化此方法,第 3 条和第 4 条语句都需要类参数?
-
如何将
NOT IN操作转换为NOT EXISTS以提高性能?public List<Pilot> getPilotsExcept(final Integer... entityIds) { final CriteriaBuilder critBuilder = em.getCriteriaBuilder(); final CriteriaQuery<Pilot> critQuery = critBuilder.createQuery(getEntityClass()); final Root<Pilot> root = critQuery.from(getEntityClass()); // Why pass the class again? critQuery.select(root).where( critBuilder.not(root.get("id").in(Arrays.asList(entityIds)))); final TypedQuery<Pilot> typedQuery = em.createQuery(critQuery); return typedQuery.getResultList(); }
【问题讨论】:
标签: java jpa criteria-api