Example usage for org.hibernate.criterion Restrictions isNull

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

Introduction

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

Prototype

public static Criterion isNull(String propertyName) 

Source Link

Document

Apply an "is null" constraint to the named property

Usage

From source file:marmar.ganaderia_fxml.hibernate.ConectorBovino.java

public ArrayList<Bovino> getBovinosFiltrados(String sexo, String estado, String arete, Raza raza, String edad,
        int meses) {

    ArrayList<Bovino> result = null;
    Session session = HibernateConector.factory.openSession();
    Transaction tx = null;/* w  w w.ja  va2s. co m*/
    try {
        tx = session.beginTransaction();

        Criteria cr = session.createCriteria(Bovino.class);

        //filtrar el sexo
        if (sexo.charAt(0) == 'A') {
        } else {
            Criterion c = Restrictions.ilike("sexo", sexo);
            cr.add(c);
        }

        //filtrar el estado del animal
        if (estado.equalsIgnoreCase("Todo Estado")) {
        } else if (estado.equalsIgnoreCase("Vendidas")) {
            Criterion fm = Restrictions.isNull("fecha_muerte");
            Criterion v = Restrictions.isNotNull("venta");
            cr.add(fm);
            cr.add(v);
        } else if (estado.equalsIgnoreCase("Muertas")) {
            Criterion fm = Restrictions.isNotNull("fecha_muerte");
            Criterion v = Restrictions.isNull("venta");
            cr.add(fm);
            cr.add(v);
        } else {
            //vivas
            Criterion fm = Restrictions.isNull("fecha_muerte");
            Criterion v = Restrictions.isNull("venta");
            cr.add(fm);
            cr.add(v);
        }

        //filtro para los aretes
        if (arete.equalsIgnoreCase("Todas")) {
        } else if (arete.equalsIgnoreCase("Con Arete")) {
            Criterion c = Restrictions.isNotNull("num_arete");
            cr.add(c);
        } else {
            Criterion c = Restrictions.isNull("num_arete");
            cr.add(c);
        }

        result = (ArrayList) cr.list();

        for (Bovino b : result) {
            Hibernate.initialize(b.getRaza());
            Hibernate.initialize(b.getVenta());
            Hibernate.initialize(b.getVacunas());
            b.getVacunas().size();
        }
        tx.commit();

    } catch (HibernateException he) {
        if (tx != null) {
            tx.rollback();
        }
        System.err.println(he.getMessage());
        he.printStackTrace();
    } finally {
        session.close();
    }

    if (result != null) {
        ArrayList<Bovino> filtrados = new ArrayList<>(result.size());
        if (edad.equalsIgnoreCase("Toda Edad")) {
            return result;
        } else if (edad.equalsIgnoreCase("Mayor o Igual Que")) {

            for (Bovino b : result) {
                if (b.getEdad() >= meses) {
                    filtrados.add(b);
                }
            }
        } else {
            for (Bovino b : result) {
                if (b.getEdad() <= meses) {
                    filtrados.add(b);
                }
            }

        }
        return filtrados;
    }
    return result;
}

From source file:me.repository.office.OfficeDao.java

License:Apache License

public List<Office> findOfficesBy(String id) {
    DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Office.class);
    if (!StringUtils.isEmpty(id)) {
        detachedCriteria.add(Restrictions.eq("parentId", Long.valueOf(id)));
    } else {/*from   www .ja  va  2  s .  c o  m*/
        detachedCriteria.add(Restrictions.isNull("parentId"));
    }
    return find(detachedCriteria);
}

From source file:mitm.common.security.ca.hibernate.CertificateRequestDAO.java

License:Open Source License

@SuppressWarnings("unchecked")
public CertificateRequestEntity getNextRequest(Date notAfter) {
    DetachedCriteria minDateCriteria = createDetachedCriteria(CertificateRequestEntity.ENTITY_NAME);

    /*//from   w w w  . j  a v a  2s  . c o  m
     * Create a criteria to get the oldest nextUpdate
     */
    minDateCriteria.setProjection(Projections.min(CertificateRequestEntity.NEXT_UPDATE_COLUMN_NAME));

    Criteria criteria = createCriteria(CertificateRequestEntity.ENTITY_NAME);

    criteria.add(Restrictions.or(
            Property.forName(CertificateRequestEntity.NEXT_UPDATE_COLUMN_NAME).eq(minDateCriteria),
            Restrictions.isNull(CertificateRequestEntity.NEXT_UPDATE_COLUMN_NAME)));

    /*
     * We only want entries that are older than notAfter or have no nextUpdate yet. The reason for notAfter is
     * that we do not want to try too fast in succession. By setting notAfter to the current date we will only 
     * get entries for which the update is long overdue.
     */
    criteria.add(Restrictions.or(Restrictions.le(CertificateRequestEntity.NEXT_UPDATE_COLUMN_NAME, notAfter),
            Restrictions.isNull(CertificateRequestEntity.NEXT_UPDATE_COLUMN_NAME)));

    addSortOnCreationDate(criteria);

    CertificateRequestEntity next = null;

    List<CertificateRequestEntity> found = criteria.list();

    if (found != null && found.size() > 0) {
        next = found.get(0);
    }

    return next;
}

From source file:mitm.common.sms.hibernate.SMSGatewayDAO.java

License:Open Source License

public int getAvailableCount(Date notAfter) {
    Criteria criteria = createCriteria(entityName);

    if (notAfter != null) {
        /*//from ww  w .j av  a  2  s .com
         * We only want entries that are older than notAfter or have no dateLastTry yet
         */
        criteria.add(
                Restrictions.or(Restrictions.le(SMSGatewayEntity.Columns.DATE_LAST_TRY.getColumn(), notAfter),
                        Restrictions.isNull(SMSGatewayEntity.Columns.DATE_LAST_TRY.getColumn())));
    }

    criteria.setProjection(Projections.rowCount());

    return (Integer) criteria.uniqueResult();
}

From source file:mitm.common.sms.hibernate.SMSGatewayDAO.java

License:Open Source License

/**
 * Returns the entry that has the oldest try date and not after notAfter. If there is no such entry null
 * is returned./*w  w  w .  j a  va2  s .  c om*/
 */
@SuppressWarnings("unchecked")
public SMSGatewayEntity getNextAvailable(Date notAfter) {
    DetachedCriteria minDateCriteria = createDetachedCriteria(entityName);

    /*
     * Create a criteria to get the oldest dateLastTry
     */
    minDateCriteria.setProjection(Projections.min(SMSGatewayEntity.Columns.DATE_LAST_TRY.getColumn()));

    Criteria criteria = createCriteria(entityName);

    criteria.add(Restrictions.or(
            Property.forName(SMSGatewayEntity.Columns.DATE_LAST_TRY.getColumn()).eq(minDateCriteria),
            Restrictions.isNull(SMSGatewayEntity.Columns.DATE_LAST_TRY.getColumn())));

    /*
     * We only want entries that are older than notAfter or have no dateLastTry yet. The reason for notAfter is
     * that we do not want to try too fast in succession. By setting notAfter in the past we can make sure that
     * we only get entries that are not recently been updated.
     */
    criteria.add(Restrictions.or(Restrictions.le(SMSGatewayEntity.Columns.DATE_LAST_TRY.getColumn(), notAfter),
            Restrictions.isNull(SMSGatewayEntity.Columns.DATE_LAST_TRY.getColumn())));

    SMSGatewayEntity next = null;

    List<SMSGatewayEntity> found = criteria.list();

    if (found != null && found.size() > 0) {
        next = found.get(0);
    }

    return next;
}

From source file:models.db.acentera.impl.ProjectImpl.java

License:Open Source License

public static List<ProjectUserTags> getUserProjectTags(UserProjects up) {
    Session s = (Session) HibernateSessionFactory.getSession();
    Criteria criteria = s.createCriteria(ProjectUserTags.class).createAlias("projectTags", "tags");

    List<ProjectUserTags> tags = (List<ProjectUserTags>) criteria
            .add(Restrictions.and(Restrictions.eq("userProjects", up), Restrictions.isNull("disableDate"),
                    Restrictions.eq("tags.type", "quota")))
            .list();/*from  w ww  . j a va  2 s .c om*/

    return tags;
}

From source file:models.db.acentera.impl.ProjectImpl.java

License:Open Source License

public static Set<ProjectTags> getUserProjectRoles(UserProjects up) {
    Session s = (Session) HibernateSessionFactory.getSession();
    Criteria criteria = s.createCriteria(ProjectUserRoles.class).createAlias("projectTags", "tags");

    List<ProjectUserRoles> userprojectroles = (List<ProjectUserRoles>) criteria
            .add(Restrictions.and(Restrictions.eq("userProjects", up), Restrictions.isNull("disableDate"),
                    Restrictions.eq("tags.type", "role")))
            .list();/*from ww w  .java 2 s  .c o m*/

    Logger.debug("GOT ROLES : " + userprojectroles);
    Set<ProjectTags> roles = new HashSet(
            extract(userprojectroles, on(ProjectUserRoles.class).getProjectTags()));
    Logger.debug("GOT A ROLES : " + roles);

    return roles;
}

From source file:monasca.api.infrastructure.persistence.hibernate.AlarmDefinitionSqlRepoImpl.java

License:Apache License

@Override
public String exists(final String tenantId, final String name) {
    logger.trace(ORM_LOG_MARKER, "exists(...) entering...");

    StatelessSession session = null;/*  w w w  . ja  v  a2 s .c  o  m*/
    try {
        session = sessionFactory.openStatelessSession();

        List<?> ids = session.createCriteria(AlarmDefinitionDb.class).add(Restrictions.eq("tenantId", tenantId))
                .add(Restrictions.eq("name", name)).add(Restrictions.isNull("deletedAt"))
                .setProjection(Projections.property("id")).setMaxResults(1).list();

        final String existingId = CollectionUtils.isEmpty(ids) ? null : (String) ids.get(0);

        if (null == existingId) {
            logger.debug(ORM_LOG_MARKER, "No AlarmDefinition matched tenantId={} and name={}", tenantId, name);
        }

        return existingId;
    } finally {
        if (session != null) {
            session.close();
        }
    }
}

From source file:monasca.api.infrastructure.persistence.hibernate.AlarmSqlRepoImpl.java

License:Apache License

@Override
public void deleteById(String tenantId, String id) {
    logger.trace(ORM_LOG_MARKER, "deleteById(...) entering");

    Transaction tx = null;//from ww  w .  j  a  v a 2 s  .c  o  m
    Session session = null;
    try {
        session = sessionFactory.openSession();
        tx = session.beginTransaction();

        final long result = (Long) session.createCriteria(AlarmDb.class, "a")
                .createAlias("alarmDefinition", "ad")
                .add(Restrictions.conjunction(Restrictions.eq("a.id", id),
                        Restrictions.eq("ad.tenantId", tenantId),
                        Restrictions.eqProperty("a.alarmDefinition.id", "ad.id"),
                        Restrictions.isNull("ad.deletedAt")))
                .setProjection(Projections.count("a.id")).setReadOnly(true).uniqueResult();

        // This will throw an EntityNotFoundException if Alarm doesn't exist or has a different tenant
        // id
        if (result < 1) {
            throw new EntityNotFoundException("No alarm exists for %s", id);
        }

        // delete alarm
        session.getNamedQuery(AlarmDb.Queries.DELETE_BY_ID).setString("id", id).executeUpdate();

        tx.commit();
        tx = null;
    } catch (Exception e) {
        this.rollbackIfNotNull(tx);
        throw e;
    } finally {
        if (session != null) {
            session.close();
        }
    }

}

From source file:monasca.thresh.infrastructure.persistence.hibernate.AlarmDefinitionSqlImpl.java

License:Apache License

@Override
@SuppressWarnings("unchecked")
public List<AlarmDefinition> listAll() {

    Session session = null;/*from  w  w  w.j  a  v  a2 s .c om*/
    List<AlarmDefinition> alarmDefinitions = null;

    try {
        session = sessionFactory.openSession();
        List<AlarmDefinitionDb> alarmDefDbList = session.createCriteria(AlarmDefinitionDb.class)
                .add(Restrictions.isNull("deletedAt")).addOrder(Order.asc("createdAt")).setReadOnly(true)
                .list();

        if (alarmDefDbList != null) {
            alarmDefinitions = Lists.newArrayListWithExpectedSize(alarmDefDbList.size());

            for (final AlarmDefinitionDb alarmDefDb : alarmDefDbList) {
                final Collection<String> matchBy = alarmDefDb.getMatchByAsCollection();
                final boolean actionEnable = alarmDefDb.isActionsEnabled();

                alarmDefinitions.add(new AlarmDefinition(alarmDefDb.getId(), alarmDefDb.getTenantId(),
                        alarmDefDb.getName(), alarmDefDb.getDescription(),
                        AlarmExpression.of(alarmDefDb.getExpression()), alarmDefDb.getSeverity().name(),
                        actionEnable, this.findSubExpressions(session, alarmDefDb.getId()),
                        matchBy.isEmpty() ? Collections.<String>emptyList() : Lists.newArrayList(matchBy)));

                session.evict(alarmDefDb);
            }

        }

        return alarmDefinitions == null ? Collections.<AlarmDefinition>emptyList() : alarmDefinitions;
    } finally {
        if (session != null) {
            session.close();
        }
    }
}