Example usage for org.hibernate.criterion Restrictions isNotNull

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

Introduction

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

Prototype

public static Criterion isNotNull(String propertyName) 

Source Link

Document

Apply an "is not null" constraint to the named property

Usage

From source file:org.gbif.portal.dao.occurrence.impl.hibernate.OccurrenceRecordDAOImpl.java

License:Open Source License

/**
 * Builds a criteria object for using the specified criteria, ignoring null arguments.
 * /* w  ww .ja  v a2 s. c om*/
 * @param session
 * @param taxonConcept
 * @param dataProvider
 * @param dataResource
 * @param resourceNetwork
 * @param scientificName
 * @param hostIsoCountryCode
 * @param originIsoCountryCode
 * @param originIsoDepartmentCode
 * @param originIsoCountyCode
 * @param complexId
 * @param marineId
 * @param protectedId
 * @param ecosystemId
 * @param zonificacionId
 * @param minLongitude
 * @param maxLongitude
 * @param minLatitude
 * @param maxLatitude
 * @param cellId
 * @param startDate
 * @param endDate
 * @param basisOfRecord
 * @param modifiedSince
 * @param georeferencedOnly
 * @param searchConstraints
 * @return a constructed hibernate criteria 
 */
private Criteria buildCriteria(Session session, final TaxonConcept taxonConcept,
        final DataProvider dataProvider, final DataResource dataResource, final ResourceNetwork resourceNetwork,
        final String scientificName, final String hostIsoCountryCode, final String originIsoCountryCode,
        final String originIsoDepartmentCode, final String originIsoCountyCode, final String complexId,
        final String marineId, final String protectedId, final String ecosystemId, final String zonificacionId,
        final Float minLongitude, final Float maxLongitude, final Float minLatitude, final Float maxLatitude,
        final Integer cellId, final Date startDate, final Date endDate, final BasisOfRecord basisOfRecord,
        final Date modifiedSince, final boolean georeferencedOnly, final SearchConstraints searchConstraints) {
    Criteria criteria = session.createCriteria(OccurrenceRecord.class, "ocr");
    if (taxonConcept != null) {
        String searchRankString = null;

        if (taxonConcept.getIsNubConcept()) {
            criteria = criteria.createAlias("ocr.nubTaxonConcept", "ocrtc");
        } else {
            criteria = criteria.createAlias("ocr.taxonConcept", "ocrtc");
        }

        TaxonRank taxonConceptRank = taxonConcept.getTaxonRank();
        if (taxonConceptRank != null) {
            if (taxonConceptRank.equals(TaxonRank.KINGDOM)) {
                searchRankString = "ocrtc.kingdomConceptId";
            } else if (taxonConceptRank.equals(TaxonRank.PHYLUM)) {
                searchRankString = "ocrtc.phylumConceptId";
            } else if (taxonConceptRank.equals(TaxonRank.CLASS)) {
                searchRankString = "ocrtc.classConceptId";
            } else if (taxonConceptRank.equals(TaxonRank.ORDER)) {
                searchRankString = "ocrtc.orderConceptId";
            } else if (taxonConceptRank.equals(TaxonRank.FAMILY)) {
                searchRankString = "ocrtc.familyConceptId";
            } else if (taxonConceptRank.equals(TaxonRank.GENUS)) {
                searchRankString = "ocrtc.genusConceptId";
            } else if (taxonConceptRank.equals(TaxonRank.SPECIES)) {
                searchRankString = "ocrtc.speciesConceptId";
            }
        }

        if (searchRankString != null) {
            criteria = criteria.add(Restrictions.or(Restrictions.eq("ocrtc.id", taxonConcept.getId()),
                    Restrictions.eq(searchRankString, taxonConcept.getId())));
        } else {
            criteria = criteria.add(Restrictions.eq("ocrtc.id", taxonConcept.getId()));
        }
    }
    if (dataResource != null) {
        criteria = criteria.add(Restrictions.eq("ocr.dataResource", dataResource));
    }
    if (hostIsoCountryCode != null || dataProvider != null || resourceNetwork != null) {
        criteria = criteria.createAlias("ocr.dataResource", "ocrdr");

        if (hostIsoCountryCode != null) {
            criteria = criteria.createAlias("ocrdr.dataProvider", "ocrpd");
            criteria = criteria.add(Restrictions.eq("ocrpd.isoCountryCode", hostIsoCountryCode));
        }
        if (dataProvider != null) {
            criteria = criteria.add(Restrictions.eq("ocrdr.dataProvider", dataProvider));
        }
        if (resourceNetwork != null) {
            criteria = criteria.createAlias("ocrdr.networkMemberships", "ocrnm");
            criteria = criteria.add(Restrictions.eq("ocrnm.resourceNetwork", resourceNetwork));
        }
    }
    if (scientificName != null) {
        criteria = criteria.createAlias("ocr.taxonName", "ocrtn");
        int wildcardIndex = scientificName.indexOf("*");
        if (wildcardIndex > 0) {
            String nameStub = scientificName.substring(0, wildcardIndex);
            criteria = criteria.add(Restrictions.like("ocrtn.canonical", nameStub, MatchMode.START));
        } else {
            criteria = criteria.add(Restrictions.eq("ocrtn.canonical", scientificName));
        }
    }
    if (originIsoCountryCode != null) {
        criteria = criteria.add(Restrictions.eq("ocr.isoCountryCode", originIsoCountryCode));
    }
    if (originIsoDepartmentCode != null) {
        criteria = criteria.add(Restrictions.eq("ocr.isoDepartmentCode", originIsoDepartmentCode));
    }

    if (originIsoCountyCode != null) {
        criteria = criteria.add(Restrictions.eq("ocr.isoCountyCode", originIsoCountyCode));
    }

    if (complexId != null) {
        criteria = criteria.add(Restrictions.eq("ocr.paramo", complexId));
    }

    if (marineId != null) {
        criteria = criteria.add(Restrictions.eq("ocr.marineZone", marineId));
    }

    if (protectedId != null) {
        criteria = criteria.add(Restrictions.eq("ocr.protectedArea", protectedId));
    }

    if (ecosystemId != null) {
        criteria = criteria.add(Restrictions.eq("ocr.dryForest", ecosystemId));
    }

    if (zonificacionId != null) {
        criteria = criteria.add(Restrictions.eq("ocr.zonificacion", zonificacionId));
    }

    if (cellId != null) {
        criteria = criteria.add(Restrictions.eq("ocr.cellId", cellId));
    }
    if (minLongitude != null) {
        criteria = criteria.add(Restrictions.ge("ocr.longitude", minLongitude));
    }
    if (maxLatitude != null) {
        criteria = criteria.add(Restrictions.le("ocr.latitude", maxLatitude));
    }
    if (maxLongitude != null) {
        criteria = criteria.add(Restrictions.le("ocr.longitude", maxLongitude));
    }
    if (minLatitude != null) {
        criteria = criteria.add(Restrictions.ge("ocr.latitude", minLatitude));
    }
    if (startDate != null) {
        criteria = criteria.add(Restrictions.ge("ocr.occurrenceDate", startDate));
    }
    if (endDate != null) {
        criteria = criteria.add(Restrictions.le("ocr.occurrenceDate", endDate));
    }
    if (basisOfRecord != null) {
        criteria = criteria.add(Restrictions.eq("ocr.basisOfRecord", basisOfRecord));
    }
    if (modifiedSince != null) {
        criteria = criteria.add(Restrictions.ge("ocr.modified", modifiedSince));
    }
    if (georeferencedOnly) {
        criteria = criteria.add(Restrictions.isNotNull("ocr.cellId"));
    }
    if (searchConstraints != null) {
        if (searchConstraints.getStartIndex() != 0) {
            criteria.setFirstResult(searchConstraints.getStartIndex().intValue());
        }
        if (searchConstraints.getMaxResults() != null) {
            criteria = criteria.setMaxResults(searchConstraints.getMaxResults().intValue());
        }
    }

    return criteria;
}

From source file:org.generationcp.middleware.dao.dms.DmsProjectDao.java

License:Open Source License

private Criteria buildCoreCriteria(final Map<StudyFilters, String> parameters, final Order orderBy) {
    final Criteria criteria = this.getSession().createCriteria(this.getPersistentClass());
    criteria.add(Restrictions.isNotNull("studyType"));

    criteria.add(Restrictions.ne(DmsProjectDao.DELETED, true));

    if (parameters.containsKey(StudyFilters.PROGRAM_ID)) {
        criteria.add(Restrictions.eq(StudyFilters.PROGRAM_ID.getParameter(),
                parameters.get(StudyFilters.PROGRAM_ID)));
    } else {/*from  w  w  w . ja va  2s  . c  o m*/
        criteria.add(Restrictions.isNotNull(StudyFilters.PROGRAM_ID.getParameter()));
    }

    if (parameters.containsKey(StudyFilters.LOCATION_ID)) {
        // Find environments with specified location (saved in GeolocationProperty)
        final DetachedCriteria locationCriteria = DetachedCriteria.forClass(ExperimentModel.class);
        locationCriteria.add(Restrictions.eq("typeId", TermId.TRIAL_ENVIRONMENT_EXPERIMENT.getId()));
        locationCriteria.createAlias("geoLocation", "g");
        locationCriteria.createAlias("g.properties", "gp");
        locationCriteria.createAlias("project", "p");
        locationCriteria.createAlias("p.study", "st");
        locationCriteria.add(Restrictions.and(Restrictions.eq("gp.typeId", DmsProjectDao.LOCATION_ID),
                Restrictions.eq("gp.value", parameters.get(StudyFilters.LOCATION_ID))));
        locationCriteria.setProjection(Projections.property("st.projectId"));
        criteria.add(Property.forName("projectId").in(locationCriteria));
    }

    criteria.addOrder(orderBy);
    return criteria;
}

From source file:org.generationcp.middleware.dao.dms.PhenotypeDao.java

License:Open Source License

@SuppressWarnings("Duplicates")
public Set<Integer> getPendingVariableIds(final Integer datasetId) {
    final Criteria criteria = this.getSession().createCriteria(this.getPersistentClass());

    criteria.createAlias("experiment", "experiment");
    criteria.add(Restrictions.eq("experiment.project.projectId", datasetId));

    final Criterion draftValue = Restrictions.isNotNull("draftValue");
    final Criterion draftCValueId = Restrictions.isNotNull("draftCValueId");
    criteria.add(Restrictions.or(draftValue, draftCValueId));

    criteria.setProjection(Projections.distinct(Projections.property("observableId")));

    return new HashSet<>(criteria.list());
}

From source file:org.generationcp.middleware.dao.dms.PhenotypeDao.java

License:Open Source License

@SuppressWarnings("Duplicates")
public Long countPendingDataOfDataset(final Integer datasetId) {
    final Criteria criteria = this.getSession().createCriteria(this.getPersistentClass());
    criteria.createAlias("experiment", "experiment");
    criteria.add(Restrictions.eq("experiment.project.projectId", datasetId));
    final Criterion draftValue = Restrictions.isNotNull("draftValue");
    final Criterion draftCValueId = Restrictions.isNotNull("draftCValueId");
    criteria.add(Restrictions.or(draftValue, draftCValueId));
    criteria.setProjection(Projections.rowCount());
    final Long count = (Long) criteria.uniqueResult();
    return count;
}

From source file:org.geolatte.common.cql.hibernate.HibernateCriteriaBuilder.java

License:Open Source License

@Override
public void outAIsNotNullExpr(AIsNotNullExpr node) {

    String propertyAlias = createAlias(node.getAttr());
    translatedExpressions.put(node, Restrictions.isNotNull(propertyAlias));
}

From source file:org.geolatte.featureserver.dbase.DbaseFacade.java

License:Open Source License

public <T> List<T> getDistinctValues(Class<?> entityClass, String property, Class<T> propertyType) {
    Transaction tx = null;/* ww  w  .j ava2 s  . c o m*/
    try {
        Session session = sessionFactory.getCurrentSession();
        tx = session.beginTransaction();
        Criteria criteria = session.createCriteria(entityClass);
        criteria.add(Restrictions.isNotNull(property));
        criteria.setProjection(Projections.distinct(Projections.property(property)));
        List<T> result = (List<T>) criteria.list();
        tx.commit();
        return result;
    } catch (HibernateException e) {
        LOGGER.error(e);
        if (tx != null) {
            tx.rollback();
        }
        throw new DatabaseException(e);
    } finally {
        sessionFactory.getCurrentSession().close();
    }
}

From source file:org.geoserver.taskmanager.data.impl.TaskManagerDaoImpl.java

License:Open Source License

@Override
public Run getCommittingRun(final Task task) {
    return (Run) (getSession().createCriteria(RunImpl.class).setLockMode(LockMode.PESSIMISTIC_READ)
            .createAlias("batchElement", "batchElement").createAlias("batchElement.task", "task")
            .add(Restrictions.eq("task.id", task.getId())).add(Restrictions.isNotNull("end"))
            .add(Restrictions.eq("status", Run.Status.COMMITTING))).uniqueResult();
}

From source file:org.gluewine.persistence_jpa_hibernate.impl.HibernateTransactionalSessionImpl.java

License:Apache License

@Override
public Criteria createCriteria(Class<?> cl, Filter filter) {
    Criteria cr = createCriteria(cl);/*from www. j  a v  a  2s  .c o m*/

    for (FilterLine line : filter.getLines()) {
        switch (line.getOperator()) {
        case CONTAINS:
            cr.add(Restrictions.like(line.getFieldName(), "%" + line.getValue() + "%"));
            break;

        case DOES_NOT_CONTAIN:
            cr.add(Restrictions.not(Restrictions.like(line.getFieldName(), "%" + line.getValue() + "%")));
            break;

        case DOES_NOT_ICONTAIN:
            cr.add(Restrictions.not(Restrictions.ilike(line.getFieldName(), "%" + line.getValue() + "%")));
            break;

        case EQUALS:
            cr.add(Restrictions.eq(line.getFieldName(), line.getValue()));
            break;

        case GREATER_OR_EQUAL_THAN:
            cr.add(Restrictions.ge(line.getFieldName(), line.getValue()));
            break;

        case GREATER_THAN:
            cr.add(Restrictions.gt(line.getFieldName(), line.getValue()));
            break;

        case ICONTAINS:
            cr.add(Restrictions.ilike(line.getFieldName(), "%" + line.getValue() + "%"));
            break;

        case LESS_OR_EQUAL_THAN:
            cr.add(Restrictions.le(line.getFieldName(), line.getValue()));
            break;

        case LESS_THAN:
            cr.add(Restrictions.lt(line.getFieldName(), line.getValue()));
            break;

        case NOT_EQUALS:
            cr.add(Restrictions.ne(line.getFieldName(), line.getValue()));
            break;

        case ISNULL:
            cr.add(Restrictions.isNull(line.getFieldName()));
            break;

        case NOTNULL:
            cr.add(Restrictions.isNotNull(line.getFieldName()));
            break;

        default:
            break;
        }
    }

    for (SortLine sort : filter.getSortLines()) {
        if (sort.isAscending())
            cr.addOrder(Property.forName(sort.getField()).asc());
        else
            cr.addOrder(Property.forName(sort.getField()).desc());
    }

    if (filter.getLimit() != 0)
        cr.setMaxResults(filter.getLimit());
    if (filter.getOffset() != 0)
        cr.setFirstResult(filter.getOffset());

    return cr;
}

From source file:org.grails.datastore.gorm.hibernate.query.HibernateQuery.java

License:Apache License

@Override
public Query isNotNull(String property) {
    criteria.add(Restrictions.isNotNull(property));
    return this;

}

From source file:org.headsupdev.agile.app.milestones.MilestoneFilterPanel.java

License:Open Source License

@Override
public Criterion getCompletedCriterion() {
    if (showIncomplete) {
        if (!showComplete) {
            return Restrictions.isNull("completed");
        }/*from  w  w  w.j  ava 2 s  .  c om*/
    } else {
        if (showComplete) {
            return Restrictions.isNotNull("completed");
        } else {
            // will be nothing, can we return that faster?
            return Restrictions.and(Restrictions.isNull("completed"), Restrictions.isNotNull("completed"));
        }
    }

    return null;
}