好的..我被卡住了。
有人可以帮我转换这个JQL
选择FROM资产a WHERE?1 IN(SELECT c FROM a.categories c)
类别是Enum的集合。我很难转换WHERE部分。我不明白为什么方法CriteriaBuilder.IN只接收一个值。
任何人都可以帮助我?
答案 0 :(得分:4)
尝试类似:
CriteriaBuilder qb = em.getCriteriaBuilder();
CriteriaQuery<Asset> cq = qb.createQuery(Asset.class);
Root<Asset> asset = cq.from(Asset.class);
cq.where(qb.parameter(Category.class, "category").in(asset.<Collection<?>>get("categories"))));
Query query = em.createQuery(cq);