Example usage for org.hibernate.criterion Subqueries propertyNotIn

List of usage examples for org.hibernate.criterion Subqueries propertyNotIn

Introduction

In this page you can find the example usage for org.hibernate.criterion Subqueries propertyNotIn.

Prototype

public static Criterion propertyNotIn(String propertyName, DetachedCriteria dc) 

Source Link

Document

Creates a criterion which checks that the value of a given property is not-in the set of values in the subquery result.

Usage

From source file:com.orig.gls.group.dao.Group.java

public static ArrayList getAllVerifiedGroups() {
    ArrayList arr = new ArrayList();
    Session session = HibernateUtil.getSessionFactory().openSession();
    Transaction tx = null;/*from  w w w.  j a v a 2s  .  c  om*/
    List<GroupsTable> list;
    try {
        tx = session.beginTransaction();
        DetachedCriteria subquery = DetachedCriteria.forClass(GroupsTableMod.class);
        subquery.setProjection(Projections.property("groupId"));
        Criteria cr = session.createCriteria(GroupsTable.class);
        cr.add(Subqueries.propertyNotIn("groupId", subquery));
        list = cr.list();
        for (GroupsTable group : list) {
            ArrayList one = new ArrayList();
            one.add(group.getGroupCode());
            one.add(String.valueOf(group.getGroupId()));
            one.add(group.getGroupName());
            one.add(sdf.format(group.getRcreTime()));
            one.add(group.getRcreUserId());
            one.add(String.valueOf(group.getSolId()));//5
            one.add(group.getBranchName());//6
            one.add(group.getGrpMgrId());//7
            one.add(group.getGrpRegNo());//8
            one.add(sdf.format(group.getFormationDate()));//9
            one.add(group.getGpRegion());//10
            one.add(group.getGroupCenter());//11
            one.add(group.getGroupVillage());//12
            one.add(group.getGroupAddress());//13
            one.add(group.getGroupPhone());//14
            one.add(sdf.format(group.getFirstMeetDate()));//15
            one.add(sdf.format(group.getNxtMeetDate()));//16
            one.add(group.getMeetTime());//17
            one.add(group.getMeetPlace());//18
            one.add(String.valueOf(group.getMaxAllowedMembers()));//19
            one.add(String.valueOf(group.getMaxAllowedSubGrps()));//20
            String groupchair = "";
            String grouptre = "";
            String groupsec = "";
            if (group.getGpChair() != null) {
                groupchair = group.getGpChair();
            }
            if (group.getGpTreasurer() != null) {
                grouptre = group.getGpTreasurer();
            }
            if (group.getGpSecretary() != null) {
                groupsec = group.getGpSecretary();
            }
            one.add(groupchair);//21
            one.add(grouptre);//22
            one.add(groupsec);//23
            one.add(group.getGpStatus());//24
            one.add(group.getGpStatusCode());//25
            one.add(String.valueOf(group.getNoOfMembers()));//26
            one.add(group.getMeetFrequency());//27
            one.add(String.valueOf(group.getSavingAccounts()));//28
            one.add(String.valueOf(group.getSavingsAmt()));//29
            one.add(String.valueOf(group.getLoanAccounts()));//30
            one.add(String.valueOf(group.getOutstandingBal()));//31
            arr.add(one);
        }
        tx.commit();
    } catch (Exception asd) {
        log.debug(asd.getMessage());
        if (tx != null) {
            tx.rollback();
        }
    } finally {
        session.close();
    }
    return arr;
}

From source file:com.orig.gls.subgroup.dao.SubGroup.java

public static ArrayList getAllVerifiedSubGroups() {
    ArrayList arr = new ArrayList();
    Session session = HibernateUtil.getSessionFactory().openSession();
    Transaction tx = null;/*from  w ww. ja v  a2 s. co  m*/
    List<SubGrpTable> list;
    try {
        tx = session.beginTransaction();
        DetachedCriteria subquery = DetachedCriteria.forClass(SubGrpTableMod.class);
        subquery.setProjection(Projections.property("subGroupId"));
        Criteria cr = session.createCriteria(SubGrpTable.class);
        cr.add(Subqueries.propertyNotIn("subGroupId", subquery));
        list = cr.list();
        for (SubGrpTable group : list) {
            ArrayList one = new ArrayList();
            one.add(group.getSubGroupCode());
            one.add(String.valueOf(group.getSubGroupId()));
            one.add(group.getSubGroupName());
            one.add(sdf.format(group.getRcreTime()));
            one.add(group.getRcreUserId());
            one.add(String.valueOf(group.getSolId()));//5
            one.add(group.getBranchName());//6
            one.add(group.getSubGrpMgrId());//7
            one.add(group.getSubGrpRegNo());//8
            one.add(sdf.format(group.getFormationDate()));//9
            one.add(group.getSubGpRegion());//10
            one.add(group.getSubGroupCenter());//11
            one.add(group.getSubGroupVillage());//12
            one.add(group.getSubGroupAddress());//13
            one.add(group.getSubGroupPhone());//14
            one.add(sdf.format(group.getFirstMeetDate()));//15
            one.add(sdf.format(group.getNxtMeetDate()));//16
            one.add(group.getMeetTime());//17
            one.add(group.getMeetPlace());//18
            one.add(String.valueOf(group.getMaxAllowedMembers()));//19
            String groupchair = "";
            String grouptre = "";
            String groupsec = "";
            if (group.getSubGpChair() != null) {
                groupchair = group.getSubGpChair();
            }
            if (group.getSubGpTreasurer() != null) {
                grouptre = group.getSubGpTreasurer();
            }
            if (group.getSubGpSecretary() != null) {
                groupsec = group.getSubGpSecretary();
            }
            one.add(groupchair);//21
            one.add(grouptre);//22
            one.add(groupsec);//23
            one.add(group.getSubGpStatus());//24
            one.add(group.getSubGpStatusCode());//25
            one.add(String.valueOf(group.getNoOfMembers()));//26
            one.add(group.getMeetFrequency());//27
            one.add(String.valueOf(group.getSavingAccounts()));//28
            one.add(String.valueOf(group.getSavingsAmt()));//29
            one.add(String.valueOf(group.getLoanAccounts()));//30
            one.add(String.valueOf(group.getOutstandingBal()));//31
            List<GroupsTable> lgs = Group.getgroupDetails(group.getGroupId());
            String groupcode = "";
            String groupname = "";
            for (GroupsTable lg : lgs) {
                groupcode = lg.getGroupCode();
                groupname = lg.getGroupName();
            }
            one.add(groupcode);
            one.add(groupname);
            arr.add(one);
        }
        tx.commit();
    } catch (Exception asd) {
        log.debug(asd.getMessage());
        if (tx != null) {
            tx.rollback();
        }
    } finally {
        session.close();
    }
    return arr;
}

From source file:com.qcadoo.model.api.search.SearchSubqueries.java

License:Open Source License

/**
 * Creates criterion which checks if given field's value exists in given subquery.
 * //from  w  w  w. j  a v a2  s.c  o  m
 * @param field
 *            field
 * @param criteria
 *            subcriteria
 * @return criteria
 */
public static SearchCriterion fieldIn(final String field, final SearchCriteriaBuilder criteria) {
    return new SearchCriterionImpl(
            Subqueries.propertyNotIn(field, ((SearchCriteria) criteria).getHibernateDetachedCriteria()));
}

From source file:com.qcadoo.model.api.search.SearchSubqueries.java

License:Open Source License

/**
 * Creates criterion which checks if given field's value doesn't exist in given subquery.
 * /*from w w w . j  av a2  s.c o m*/
 * @param field
 *            field
 * @param criteria
 *            subcriteria
 * @return criteria
 */
public static SearchCriterion fieldNotIn(final String field, final SearchCriteriaBuilder criteria) {
    return new SearchCriterionImpl(
            Subqueries.propertyNotIn(field, ((SearchCriteria) criteria).getHibernateDetachedCriteria()));
}

From source file:com.tysanclan.site.projectewok.entities.dao.hibernate.InactivityNotificationDAOImpl.java

License:Open Source License

@Override
public List<Long> getUnnotifiedInactiveUsers() {
    Criteria criteria = getSession().createCriteria(User.class);

    DetachedCriteria dc = DetachedCriteria.forClass(InactivityNotification.class);
    dc.setProjection(Projections.property("user"));

    criteria.add(Subqueries.propertyNotIn("id", dc));

    Disjunction d = Restrictions.disjunction();

    d.add(getTrialMemberInactivityCriterion());
    d.add(getVacationMemberInactivityCriterion());
    d.add(getRetiredMemberInactivityCriterion());
    d.add(getRegularMemberInactivityCriterion());

    criteria.add(d);/*from w ww.ja  va 2 s .  co m*/

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

    List<Long> ids = listOf(criteria);

    return ids;
}

From source file:de.iteratec.iteraplan.businesslogic.reports.query.node.AttributeLeafNode.java

License:Open Source License

/**
 * Creates the {@link DetachedCriteria} for the {@link Comparator#NO_ASSIGNMENT} comparator.
 * // www.j av  a 2  s. c om
 * @param criteria the criteria to add the restrictions for
 * @param criterion the additional criterion, can be {@code null}
 * @return the {@link DetachedCriteria} for the {@link Comparator#NO_ASSIGNMENT} comparator
 */
protected DetachedCriteria createNoAssignmentCriteria(DetachedCriteria criteria, Criterion criterion) {
    final DetachedCriteria numberAvs = DetachedCriteria.forClass(getAttributeValueClass(), "numberAV");
    numberAvs.createAlias("numberAV.attributeValueAssignments", "avas");
    numberAvs.add(Restrictions.eq("attributeType.id", Integer.valueOf(getAttributeId())));
    numberAvs.setProjection(Property.forName("avas.buildingBlock"));

    if (criterion != null) {
        numberAvs.add(criterion);
    }

    final String bbId = String.format("%s.%s", getResultTypeDBNameShortWithSuffix(), "id");
    criteria.add(Subqueries.propertyNotIn(bbId, numberAvs));

    return criteria;
}

From source file:org.candlepin.model.CertificateSerialCurator.java

License:Open Source License

@SuppressWarnings("rawtypes")
private Criterion getRevokedCriteria() {
    Conjunction crit = Restrictions.conjunction();
    for (Class clazz : CERTCLASSES) {
        DetachedCriteria certSerialQuery = DetachedCriteria.forClass(clazz).createCriteria("serial")
                .setProjection(Projections.property("id"));
        crit.add(Subqueries.propertyNotIn("id", certSerialQuery));
    }/*  w w  w.j a  v a2  s  . c o m*/
    return crit;
}

From source file:org.egov.pims.commons.service.PositionService.java

License:Open Source License

/**
 * gives vacant positions for given date range and designation 
 * @param fromDate/*from  ww w  .jav  a2  s.c om*/
 * @param toDate
 * @param designationMasterId
 * @return
 */
public Criteria getVacantPositionCriteria(Date fromDate, Date toDate, Integer designationMasterId) {
    DetachedCriteria detachAssignmentPrd = DetachedCriteria.forClass(Assignment.class, "assignment");
    detachAssignmentPrd
            .add(Restrictions.and(Restrictions.le("assignment.fromDate", fromDate),
                    Restrictions.or(Restrictions.ge("assignment.toDate", toDate),
                            Restrictions.isNull("assignment.toDate"))))
            .setProjection(Projections.property("assignment.id"));

    DetachedCriteria detachAssignment = DetachedCriteria.forClass(Assignment.class, "assignment");
    detachAssignment.add(Subqueries.propertyIn("assignment.id", detachAssignmentPrd));
    detachAssignment.add(Restrictions.eq("assignment.isPrimary", 'Y'));
    detachAssignment.setProjection(Projections.distinct(Projections.property("assignment.position.id")));

    Criteria criteria = getCurrentSession().createCriteria(Position.class, "position");
    if (designationMasterId != null && !designationMasterId.equals("0")) {
        criteria.add(Restrictions.eq("position.deptDesig.designation.id", designationMasterId));
    }

    criteria.add(Subqueries.propertyNotIn("position.id", detachAssignment));
    criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
    criteria.addOrder(Order.asc("position.name"));
    return criteria;
}

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

License:Open Source License

@SuppressWarnings("unchecked")
@Override/*from w w  w. j  a  va2 s.  c  om*/
public List<Task> getTasksAvailableForBatch(Batch batch) {
    DetachedCriteria alreadyInBatch = DetachedCriteria.forClass(BatchElementImpl.class)
            .createAlias("batch", "batch").createAlias("task", "task")
            .add(Restrictions.eq("batch.id", batch.getId())).add(Restrictions.eq("removeStamp", 0L))
            .setProjection(Projections.property("task.id"));
    Criteria criteria = getSession().createCriteria(TaskImpl.class)
            .createAlias("configuration", "configuration").add(Restrictions.eq("removeStamp", 0L))
            .add(Restrictions.eq("configuration.removeStamp", 0L))
            .add(Subqueries.propertyNotIn("id", alreadyInBatch));

    if (batch.getConfiguration() == null) {
        criteria.add(Restrictions.eq("configuration.template", false));
    } else {
        criteria.add(Restrictions.eq("configuration.id", batch.getConfiguration().getId()));
    }

    return (List<Task>) criteria.list();
}

From source file:org.openmrs.module.labtrackingapp.api.db.hibernate.HibernateLabTrackingAppDAO.java

License:Open Source License

public List<Order> getActiveOrders(long startDate, long endDate, String patientUuid, String patientName,
        int status, int maxResults) {

    Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Order.class, "ord");
    criteria.createAlias("encounter", "enc");
    criteria.createAlias("ord.patient", "pat");
    criteria.createAlias("ord.orderType", "orderType");

    criteria.add(Restrictions.eq("orderType.uuid", LabTrackingConstants.LAB_TRACKING_TESTORDER_TYPE_UUID));
    if (LabTrackingConstants.LabTrackingOrderStatus.CANCELED.getId() == status) {
        criteria.add(Restrictions.eq("ord.voided", Boolean.TRUE));
    } else if (LabTrackingConstants.LabTrackingOrderStatus.ALL.getId() != status) {
        criteria.add(Restrictions.eq("ord.voided", Boolean.FALSE));
    } else {//from  w w  w .java 2s  .  c o m
        //for all other all, just return all voided or not
    }

    if (startDate > 0) {
        Calendar c = Calendar.getInstance();
        c.setTimeInMillis(startDate);
        criteria.add(Restrictions.ge("enc.encounterDatetime", c.getTime()));
    }

    if (endDate > 0) {
        Calendar c = Calendar.getInstance();
        c.setTimeInMillis(endDate);
        criteria.add(Restrictions.le("enc.encounterDatetime", c.getTime()));
    }

    if (patientUuid != null && patientUuid.length() > 0) {
        criteria.add(Restrictions.eq("pat.uuid", patientUuid));
    }

    if (patientName != null && patientName.length() > 0) {
        criteria.createAlias("patient.names", "pname");
        criteria.createAlias("patient.identifiers", "pids");

        final String query = new StringBuilder().append("%").append(patientName).append("%").toString();

        DetachedCriteria samples = getSamplesSubQuery();
        //find orders where
        //  an obs with the assendion number
        // is part of an encounter that has an order number
        // that equals the order's order number

        criteria.add(Restrictions.or(Subqueries.propertyIn("orderNumber", getAccessionNumberSubQuery(query)),
                Restrictions.or(Restrictions.like("pids.identifier", query),
                        Restrictions.or(Restrictions.like("pname.givenName", query),
                                Restrictions.like("pname.familyName", query)))));
    }

    if (LabTrackingConstants.LabTrackingOrderStatus.REQUESTED.getId() == status) {
        //this is all orders that have been requested but without any samples or results
        DetachedCriteria samples = getSamplesSubQuery();
        criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
                .add(Subqueries.propertyNotIn("orderNumber", samples));
    } else if (LabTrackingConstants.LabTrackingOrderStatus.SAMPLED.getId() == status) {
        // all orders that have a samples encounter and no results
        DetachedCriteria resultsObs = getResultsSubQuery();

        DetachedCriteria samples = getSamplesSubQuery().add(Subqueries.propertyNotIn("enc.id", resultsObs));

        criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
                .add(Subqueries.propertyIn("orderNumber", samples));

    } else if (LabTrackingConstants.LabTrackingOrderStatus.RESULTS.getId() == status) {
        // all orders that have a results encounter
        DetachedCriteria resultsObs = getResultsSubQuery();
        DetachedCriteria samples = getSamplesSubQuery().add(Subqueries.propertyIn("enc.id", resultsObs));

        criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
                .add(Subqueries.propertyIn("orderNumber", samples));
    } else if (LabTrackingConstants.LabTrackingOrderStatus.CANCELED.getId() == status) {
        // all orders that have a results note or file and are canceled or just are canceled
        DetachedCriteria resultsWithFileOrNotes = getResultsWithFileOrNotesSubQuery();
        DetachedCriteria samplesWithNoNotesOrFile = getSamplesSubQuery()
                .add(Subqueries.propertyNotIn("enc.id", resultsWithFileOrNotes));

        DetachedCriteria samples = getSamplesSubQuery();

        //we need to query for onces that don't have file/notes OR ones that don't have a sample at all
        criteria.add(Restrictions.or(Subqueries.propertyIn("orderNumber", samplesWithNoNotesOrFile),
                Subqueries.propertyNotIn("orderNumber", samples)));
    } else if (LabTrackingConstants.LabTrackingOrderStatus.ALL.getId() == status) {
        //for all we don't want to include canceled
        DetachedCriteria resultsWithFileOrNotes = getResultsWithFileOrNotesSubQuery();

        DetachedCriteria samplesWithNotesOrFile = getSamplesSubQuery()
                .add(Subqueries.propertyIn("enc.id", resultsWithFileOrNotes));

        criteria.add(Restrictions.or(Restrictions.eq("ord.voided", Boolean.FALSE),
                Restrictions.and(Restrictions.eq("ord.voided", Boolean.TRUE),
                        Subqueries.propertyIn("orderNumber", samplesWithNotesOrFile))));

    }

    criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
    criteria.addOrder(org.hibernate.criterion.Order.desc("enc.encounterDatetime"));

    if (maxResults > 0) {
        criteria.setMaxResults(maxResults);
    }

    List<Order> orders = criteria.list();
    //
    //        if (LabTrackingConstants.LabTrackingOrderStatus.ALL.getId() == status) {
    //            debug(orders);
    //        }

    return orders;
}