Try something like:
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);
source
share