List of usage examples for javax.persistence.criteria CriteriaBuilder isMember
<E, C extends Collection<E>> Predicate isMember(E elem, Expression<C> collection);
From source file:fi.vm.sade.eperusteet.ylops.service.ops.impl.OpetussuunnitelmaServiceImpl.java
private CriteriaQuery<Opetussuunnitelma> getQuery(OpetussuunnitelmaQuery pquery) { CriteriaBuilder builder = em.getCriteriaBuilder(); CriteriaQuery<Opetussuunnitelma> query = builder.createQuery(Opetussuunnitelma.class); Root<Opetussuunnitelma> ops = query.from(Opetussuunnitelma.class); List<Predicate> ehdot = new ArrayList<>(); // VAIN JULKAISTUT ehdot.add(builder.equal(ops.get(Opetussuunnitelma_.tila), Tila.JULKAISTU)); // Haettu organisaatio lytyy opsilta if (pquery.getOrganisaatio() != null) { Expression<Set<String>> organisaatiot = ops.get(Opetussuunnitelma_.organisaatiot); ehdot.add(builder.and(builder.isMember(pquery.getOrganisaatio(), organisaatiot))); }/*from w w w.ja v a2 s .com*/ // Koulutustyyppi if (pquery.getKoulutustyyppi() != null) { ehdot.add(builder.and(builder.equal(ops.get(Opetussuunnitelma_.koulutustyyppi), KoulutusTyyppi.of(pquery.getKoulutustyyppi())))); } // Perusteen tyyppi if (pquery.getTyyppi() != null) { ehdot.add(builder.and(builder.equal(ops.get(Opetussuunnitelma_.tyyppi), pquery.getTyyppi()))); } // Perusteen id if (pquery.getPerusteenId() != null) { Path<PerusteCache> cachedPeruste = ops.join(Opetussuunnitelma_.cachedPeruste); ehdot.add(builder .and(builder.equal(cachedPeruste.get(PerusteCache_.perusteId), pquery.getPerusteenId()))); } // Perusteen diaarinumero if (pquery.getPerusteenDiaarinumero() != null) { ehdot.add(builder.and(builder.equal(ops.get(Opetussuunnitelma_.perusteenDiaarinumero), pquery.getPerusteenDiaarinumero()))); } query.where(ehdot.toArray(new Predicate[ehdot.size()])); return query.select(ops); }