Example usage for org.hibernate.criterion Restrictions in

List of usage examples for org.hibernate.criterion Restrictions in

Introduction

In this page you can find the example usage for org.hibernate.criterion Restrictions in.

Prototype

public static Criterion in(String propertyName, Collection values) 

Source Link

Document

Apply an "in" constraint to the named property.

Usage

From source file:com.kodemore.hibernate.criteria.KmAbstractCriteria.java

License:Open Source License

public void addIsNotIn(String property, Object[] v) {
    if (v == null || v.length == 0)
        addTrue();//from   ww w.j av  a2s  . com
    else
        _add(Restrictions.not(Restrictions.in(property, v)));
}

From source file:com.kodemore.hibernate.criteria.KmAbstractCriteria.java

License:Open Source License

public void addIsNotIn(String property, Collection<?> v) {
    if (v == null || v.isEmpty())
        addTrue();/*from  w w w  . j  a  v  a2  s  . co  m*/
    else
        _add(Restrictions.not(Restrictions.in(property, v)));
}

From source file:com.krawler.common.util.BuildCriteria.java

License:Open Source License

private static Criterion getCriteriaByCondition(Object value, Integer criteriaVal, String propertyname) {
    Criterion Criteriaobj;//from  w w w  .j  a v a2  s.c  om

    switch (criteriaVal) {
    case ISNOTNULL:
        Criteriaobj = Restrictions.isNotNull(propertyname);
        break;
    case NOTIN:
        String[] strArr = String.valueOf(value).split(",");
        List ls = Arrays.asList(strArr);
        Criteriaobj = Restrictions.not(Restrictions.in(propertyname, ls));
        break;
    case LIKE:
        Criteriaobj = Restrictions.or(Restrictions.like(propertyname, value + "%"),
                Restrictions.like(propertyname, "% " + value + "%"));
        break;
    case LE:
        Criteriaobj = Restrictions.le(propertyname, value);
        break;
    case GE:
        Criteriaobj = Restrictions.ge(propertyname, value);
        break;
    case ISNULL:
        Criteriaobj = Restrictions.isNull(propertyname);
        break;
    case IN:
        strArr = String.valueOf(value).split(",");
        ls = Arrays.asList(strArr);
        Criteriaobj = Restrictions.in(propertyname, ls);
        break;
    case NE:
        Criteriaobj = Restrictions.ne(propertyname, value);
        break;
    case LT:
        Criteriaobj = Restrictions.lt(propertyname, value);
        break;
    case GT:
        Criteriaobj = Restrictions.gt(propertyname, value);
        break;
    case EQ:
    default:
        Criteriaobj = Restrictions.eq(propertyname, value);
        break;
    }
    return Criteriaobj;
}

From source file:com.liferay.portal.workflow.jbpm.dao.CustomSession.java

License:Open Source License

public int countTaskInstances(long processInstanceId, long tokenId, String[] actorIds, boolean pooledActors,
        Boolean completed) {/*w w w  .  j  av a 2 s.c  om*/

    if ((actorIds != null) && (actorIds.length == 0)) {
        return 0;
    }

    try {
        Criteria criteria = _session.createCriteria(TaskInstance.class);

        criteria.setProjection(Projections.countDistinct("id"));

        if (processInstanceId > 0) {
            criteria.add(Restrictions.eq("processInstance.id", processInstanceId));
        } else if (tokenId > 0) {
            criteria.add(Restrictions.eq("token.id", tokenId));
        } else if (actorIds != null) {
            if (pooledActors) {
                Criteria subcriteria = criteria.createCriteria("pooledActors");

                subcriteria.add(Restrictions.in("actorId", actorIds));
            } else {
                criteria.add(Restrictions.in("actorId", actorIds));
            }
        }

        if (completed != null) {
            if (completed.booleanValue()) {
                criteria.add(Restrictions.isNotNull("end"));
            } else {
                criteria.add(Restrictions.isNull("end"));
            }
        }

        Number count = (Number) criteria.uniqueResult();

        return count.intValue();
    } catch (Exception e) {
        throw new JbpmException(e);
    }
}

From source file:com.liferay.portal.workflow.jbpm.dao.CustomSession.java

License:Open Source License

public List<TaskInstance> findTaskInstances(long processInstanceId, long tokenId, String[] actorIds,
        boolean pooledActors, Boolean completed, int start, int end, OrderByComparator orderByComparator) {

    if ((actorIds != null) && (actorIds.length == 0)) {
        return Collections.emptyList();
    }// ww  w. ja  va 2s  .c  o  m

    try {
        Criteria criteria = _session.createCriteria(TaskInstance.class);

        criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

        if (processInstanceId > 0) {
            criteria.add(Restrictions.eq("processInstance.id", processInstanceId));
        } else if (tokenId > 0) {
            criteria.add(Restrictions.eq("token.id", tokenId));
        }

        if (actorIds != null) {
            if (pooledActors) {
                Criteria subcriteria = criteria.createCriteria("pooledActors");

                subcriteria.add(Restrictions.in("actorId", actorIds));

                criteria.add(Restrictions.isNull("actorId"));
            } else {
                criteria.add(Restrictions.in("actorId", actorIds));
            }
        }

        if (completed != null) {
            if (completed.booleanValue()) {
                criteria.add(Restrictions.isNotNull("end"));
            } else {
                criteria.add(Restrictions.isNull("end"));
            }
        }

        addPagination(criteria, start, end);
        addOrder(criteria, orderByComparator);

        return criteria.list();
    } catch (Exception e) {
        throw new JbpmException(e);
    }
}

From source file:com.liferay.portal.workflow.jbpm.dao.CustomSession.java

License:Open Source License

protected void addSearchByUserRolesCriterion(Criteria criteria, Boolean searchByUserRoles,
        ServiceContext serviceContext) throws SystemException {

    if (searchByUserRoles == null) {
        return;/*from   w  ww.ja  v  a 2s.  c o  m*/
    }

    Criteria assigneesCriteria = criteria.createCriteria("assignees");

    if (!searchByUserRoles) {
        assigneesCriteria.add(Restrictions.eq("assigneeClassName", User.class.getName()));
        assigneesCriteria.add(Restrictions.eq("assigneeClassPK", serviceContext.getUserId()));

        return;
    }

    List<Long> roleIds = RoleRetrievalUtil.getRoleIds(serviceContext);

    List<UserGroupRole> userGroupRoles = UserGroupRoleLocalServiceUtil
            .getUserGroupRoles(serviceContext.getUserId());

    if (userGroupRoles.isEmpty()) {
        assigneesCriteria.add(Restrictions.eq("assigneeClassName", Role.class.getName()));
        assigneesCriteria.add(Restrictions.in("assigneeClassPK", roleIds.toArray(new Long[roleIds.size()])));
    } else {
        Junction junction = Restrictions.disjunction();

        junction.add(Restrictions.and(Restrictions.eq("assigneeClassName", Role.class.getName()),
                Restrictions.in("assigneeClassPK", roleIds.toArray(new Long[roleIds.size()]))));

        for (UserGroupRole userGroupRole : userGroupRoles) {
            junction.add(Restrictions.and(Restrictions.eq("groupId", userGroupRole.getGroupId()),
                    Restrictions.and(Restrictions.eq("assigneeClassName", Role.class.getName()),
                            Restrictions.eq("assigneeClassPK", userGroupRole.getRoleId()))));
        }

        assigneesCriteria.add(junction);
    }
}

From source file:com.lm.lic.manager.hibernate.RequestForLicenseDAO.java

private LogicalExpression createInProdNamesOrIsvProdIdsLogicalExp(List<QuickyProduct> products) {
    List<String> isvProductIds = GenUtil.listIsvProductIds(products);
    List<String> productNames = GenUtil.listproductNames(products);

    LogicalExpression orExp = null;//ww  w.  j av a2s.  co  m
    if (products != null && products.size() > 0) {
        Criterion inProdNamesCrit = Restrictions.in("reqProduct", productNames);
        Criterion isvInProdIdsCrit = Restrictions.in("isvProductId", isvProductIds);
        orExp = Restrictions.or(isvInProdIdsCrit, inProdNamesCrit);
    }

    return orExp;
}

From source file:com.lp.server.artikel.ejbfac.ArtikelbestelltFacBean.java

License:Open Source License

/**
 * Bestelltliste pruefen. 1. Bestehende Eintraege. 2. Bestellungen pruefen,
 * ob die Bestelltwerte richtig eingetragen sind.
 * // www . j a  v  a  2 s . co m
 * @param theClientDto der aktuelle Benutzer 
 */

@TransactionAttribute(TransactionAttributeType.NEVER)
public void pruefeBestelltliste(TheClientDto theClientDto) {
    Session session = FLRSessionFactory.getFactory().openSession();
    try {

        session = FLRSessionFactory.getFactory().openSession();

        String hqlDelete = "delete FROM FLRArtikelbestellt";
        session.createQuery(hqlDelete).executeUpdate();

        session.close();

        // ------------------------------------------------------------------
        // ----
        // Alle Eintraege in den Bestellungen pruefen
        // ------------------------------------------------------------------
        // ----

        session = FLRSessionFactory.getFactory().openSession();
        org.hibernate.Criteria besPos = session.createCriteria(FLRBestellposition.class);
        org.hibernate.Criteria best = besPos
                .createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG);
        // Filter auf den Mandanten
        best.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant()));
        // keine Rahmenbestellungen.
        best.add(Restrictions.not(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR,
                BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR)));
        // keine stornierten und erledigten.
        Collection<String> cStati = new LinkedList<String>();
        cStati.add(BestellungFac.BESTELLSTATUS_STORNIERT);
        cStati.add(BestellungFac.BESTELLSTATUS_ERLEDIGT);
        best.add(Restrictions.not(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGSTATUS_C_NR, cStati)));
        // Query ausfuehren
        List<?> besposList = besPos.list();
        Iterator<?> besposListIterator = besposList.iterator();
        while (besposListIterator.hasNext()) {
            FLRBestellposition bespos = (FLRBestellposition) besposListIterator.next();
            if (bespos.getBestellpositionart_c_nr().equals(BestellpositionFac.BESTELLPOSITIONART_IDENT)
                    || bespos.getBestellpositionart_c_nr()
                            .equals(BestellpositionFac.BESTELLPOSITIONART_HANDEINGABE)) {
                if (bespos.getBestellpositionstatus_c_nr() != null && (bespos.getBestellpositionstatus_c_nr()
                        .equals(BestellpositionFac.BESTELLPOSITIONSTATUS_OFFEN)
                        || bespos.getBestellpositionstatus_c_nr()
                                .equals(BestellpositionFac.BESTELLPOSITIONSTATUS_BESTAETIGT)
                        || bespos.getBestellpositionstatus_c_nr()
                                .equals(BestellpositionFac.BESTELLPOSITIONSTATUS_TEILGELIEFERT))) {

                    // nur fuer Artikel
                    if (bespos.getFlrartikel() != null) {
                        BigDecimal bdMenge = new BigDecimal(0);
                        if (bespos.getN_offenemenge() != null) {
                            bdMenge = bespos.getN_offenemenge();
                        } else {
                            bdMenge = bespos.getN_menge();
                        }
                        ArtikelbestelltDto artikelBestelltDto = new ArtikelbestelltDto();
                        artikelBestelltDto.setArtikelIId(bespos.getFlrartikel().getI_id());
                        artikelBestelltDto.setCBelegartnr(LocaleFac.BELEGART_BESTELLUNG);
                        artikelBestelltDto.setIBelegartpositionid(bespos.getI_id());
                        artikelBestelltDto.setNMenge(bdMenge);

                        if (bespos.getT_uebersteuerterliefertermin() != null) {
                            artikelBestelltDto.setTLiefertermin(
                                    new java.sql.Timestamp(bespos.getT_uebersteuerterliefertermin().getTime()));
                        } else {
                            artikelBestelltDto.setTLiefertermin(new java.sql.Timestamp(
                                    bespos.getFlrbestellung().getT_liefertermin().getTime()));
                        }

                        // anlegen, negative Mengen werden ignoriert
                        if (artikelBestelltDto.getNMenge().compareTo(new BigDecimal(0)) > 0) {
                            getArtikelbestelltFac().createArtikelbestellt(artikelBestelltDto);
                            myLogger.warn(theClientDto.getIDUser(),
                                    "Bestelltliste nachgetragen: " + artikelBestelltDto);
                        }
                    }

                }
            }
            // Fuer allen anderen Stati darf es keine Reservierungen geben.
            else {
                // Schaun, ob es eine Reservierung gibt
                ArtikelbestelltDto artikelBestelltDto = artikelbestelltFindByBelegartCNrBelegartPositionIIdOhneExc(
                        LocaleFac.BELEGART_BESTELLUNG, bespos.getI_id());
                // wenn ja, dann loeschen
                if (artikelBestelltDto != null) {
                    Artikelbestellt toRemove = em.find(Artikelbestellt.class, artikelBestelltDto.getIId());
                    if (toRemove == null) {
                        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_BEI_FINDBYPRIMARYKEY,
                                "Fehler beo prufeBestelltliste. Artikelbestellt das Aufgrund von reservierung gel\u00F6scht werden soll konnte nicht gefunden werden. iid "
                                        + artikelBestelltDto.getIId());
                    }
                    try {
                        em.remove(toRemove);
                        em.flush();
                    } catch (EntityExistsException er) {
                        throw new EJBExceptionLP(EJBExceptionLP.FEHLER_BEIM_LOESCHEN, er);
                    }
                    myLogger.warn(theClientDto.getIDUser(),
                            "Bestellteintrag gel\u00F6scht: " + artikelBestelltDto);
                }
            }
        }
    } catch (RemoteException ex) {
        throwEJBExceptionLPRespectOld(ex);
    } finally {
        if (session != null) {
            session.close();
        }
    }

}

From source file:com.lp.server.artikel.ejbfac.ArtikelbestelltFacBean.java

License:Open Source License

public Hashtable getAnzahlRahmenbestellt(Integer artikelIId, TheClientDto theClientDto) throws EJBExceptionLP {
    BigDecimal bdReserviert = new BigDecimal(0);
    Hashtable<String, Object> retHashtable = new Hashtable<String, Object>();
    String sBestellungCNr = null;
    Collection<String> aBestellungsCNr = new ArrayList<String>();
    Session session = null;//from ww w .j a v a  2 s .c  om
    try {
        SessionFactory factory = FLRSessionFactory.getFactory();
        session = factory.openSession();
        Criteria crit = session.createCriteria(FLRBestellpositionReport.class);
        Criteria critBestellung = crit.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRBESTELLUNG);

        Criteria critArtikel = crit.createCriteria(BestellpositionFac.FLR_BESTELLPOSITION_FLRARTIKEL);
        // nur diesen Artikel
        critArtikel.add(Restrictions.eq("i_id", artikelIId));
        // Filter nach Mandant
        critBestellung
                .add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_MANDANT_C_NR, theClientDto.getMandant()));
        // keine stornierten oder erledigten Bestellungen.
        Collection<String> cStati = new LinkedList<String>();
        cStati.add(BestellungFac.BESTELLSTATUS_STORNIERT);
        cStati.add(BestellungFac.BESTELLSTATUS_ERLEDIGT);
        critBestellung.add(
                Restrictions.not(Restrictions.in(BestellungFac.FLR_BESTELLUNG_BESTELLUNGSTATUS_C_NR, cStati)));
        // Nur Rahmenbestellungen
        critBestellung.add(Restrictions.eq(BestellungFac.FLR_BESTELLUNG_BESTELLUNGART_C_NR,
                BestellungFac.BESTELLUNGART_RAHMENBESTELLUNG_C_NR));
        // Query ausfuehren
        List<?> list = crit.list();
        FLRBestellpositionReport[] aResult = new FLRBestellpositionReport[list.size()];
        aResult = (FLRBestellpositionReport[]) list.toArray(aResult);
        for (int i = 0; i < aResult.length; i++) {
            // Rahmenbestellnr, Achtung nur einmal pro Positionen noetig.
            if (!aBestellungsCNr.contains(aResult[i].getFlrbestellung().getC_nr())) {
                aBestellungsCNr.add(aResult[i].getFlrbestellung().getC_nr());
            }
            // negative Rahmenreservierungen bleiben unberuecksichtigt.
            if (aResult[i].getN_offenemenge() != null && aResult[i].getN_offenemenge().doubleValue() > 0) {
                bdReserviert = bdReserviert.add(aResult[i].getN_offenemenge());
            }
        }

        if (bdReserviert != null) {
            retHashtable.put(ArtikelbestelltFac.KEY_RAHMENBESTELLT_ANZAHL, bdReserviert);
        }
        if (aBestellungsCNr.size() > 0) {
            retHashtable.put(ArtikelbestelltFac.KEY_RAHMENBESTELLT_BELEGCNR, aBestellungsCNr);
        }
    } finally {
        try {
            session.close();
        } catch (HibernateException he) {
            throw new EJBExceptionLP(EJBExceptionLP.FEHLER, he);
        }
    }
    return retHashtable;
}

From source file:com.lp.server.artikel.ejbfac.ArtikelFacBean.java

License:Open Source License

public String generiereNeueArtikelnummer(String beginnArtikelnummer, TheClientDto theClientDto) {

    if (beginnArtikelnummer == null) {

        beginnArtikelnummer = "";

        try {/*from ww w.  ja  v  a 2  s.  c  o m*/
            // PJ18234
            ParametermandantDto parameter = getParameterFac().getMandantparameter(theClientDto.getMandant(),
                    ParameterFac.KATEGORIE_ARTIKEL, ParameterFac.PARAMETER_STARTWERT_ARTIKELNUMMER);
            String startwert = parameter.getCWert();
            if (startwert != null && startwert.trim().length() > 1) {
                beginnArtikelnummer = startwert.trim();
            }
        } catch (RemoteException e) {
            throwEJBExceptionLPRespectOld(e);
        }
    }

    Session session = FLRSessionFactory.getFactory().openSession();

    org.hibernate.Criteria crit = session.createCriteria(FLRArtikel.class);
    crit.add(Restrictions.like("c_nr", beginnArtikelnummer, MatchMode.START));
    crit.add(Restrictions.eq("mandant_c_nr", theClientDto.getMandant()));

    String[] art = new String[1];
    art[0] = ArtikelFac.ARTIKELART_HANDARTIKEL;
    crit.add(Restrictions.not(Restrictions.in(ArtikelFac.FLR_ARTIKEL_ARTIKELART_C_NR, art)));

    crit.addOrder(Order.desc("c_nr"));
    crit.setMaxResults(1);
    List<?> results = crit.list();
    Iterator<?> resultListIterator = results.iterator();

    if (results.size() > 0) {
        FLRArtikel flrArtikel = (FLRArtikel) resultListIterator.next();

        String letzteArtikelnummer = flrArtikel.getC_nr();
        int iStartZahl = -1;
        int iEndeZahl = -1;
        boolean bEndeFound = false;
        int i = 0;
        while (i < letzteArtikelnummer.length()) {

            char c = letzteArtikelnummer.charAt(i);
            // wenn 0-9
            if (c > 47 && c < 58) {
                iStartZahl = i;
                iEndeZahl = iStartZahl;
                for (int j = i; j < letzteArtikelnummer.length(); j++) {
                    char d = letzteArtikelnummer.charAt(j);
                    if (d > 47 && d < 58) {
                        iEndeZahl = j;
                        if (j == letzteArtikelnummer.length() - 1) {
                            bEndeFound = true;
                        }
                    } else {
                        bEndeFound = true;
                        break;
                    }
                }
            }
            i++;
            if (bEndeFound) {
                break;
            }
        }
        if (iStartZahl >= 0 && iEndeZahl >= 0) {
            String zahlenteil = letzteArtikelnummer.substring(iStartZahl, iEndeZahl + 1);

            long zahl = new Long(zahlenteil);

            while (1 == 1) {

                zahl++;

                String zahlenteilNeu = new String(zahl + "");

                if (zahlenteilNeu.length() > zahlenteil.length()) {
                    // PJ 14917
                    String s = "";
                    for (int k = 0; k < zahlenteilNeu.length(); k++) {
                        s += "?";
                    }

                    return letzteArtikelnummer.substring(0, iStartZahl) + s
                            + letzteArtikelnummer.substring(iEndeZahl + 1);
                }

                int iNeueLaenge = zahlenteilNeu.length();
                if (iNeueLaenge < zahlenteil.length()) {
                    iNeueLaenge = zahlenteil.length();
                }
                zahlenteilNeu = Helper.fitString2LengthAlignRight(zahl + "", iNeueLaenge, '0');
                // Neue Artikelnummer zusammenbauen

                String neueArtNr = letzteArtikelnummer.substring(0, iStartZahl) + zahlenteilNeu
                        + letzteArtikelnummer.substring(iEndeZahl + 1);

                Query query = em.createNamedQuery("ArtikelfindByCNrMandantCNr");
                query.setParameter(1, neueArtNr);
                query.setParameter(2, theClientDto.getMandant());
                Collection<?> cl = query.getResultList();
                if (cl.size() > 0) {

                    continue;

                }

                return neueArtNr;
            }

        }
    }
    session.close();

    return beginnArtikelnummer;
}