List of usage examples for org.hibernate.criterion Restrictions conjunction
public static Conjunction conjunction()
From source file:es.sm2.openppm.core.dao.MilestoneDAO.java
License:Open Source License
/** * Find milestones filter by projects and milestone type and dates * //from w w w .j ava 2s. c om * @param projects * @param milestonetype * @param milestonecategory * @param until * @param since * @param milestonePending * @param property * @param order * @param joins * @return */ @SuppressWarnings("unchecked") public List<Milestones> filter(List<Project> projects, Milestonetype milestonetype, Milestonecategory milestonecategory, Date since, Date until, String milestonePending, String property, String order, List<String> joins) { List<Milestones> list = new ArrayList<Milestones>(); if (ValidateUtil.isNotNull(projects)) { Criteria crit = getSession().createCriteria(getPersistentClass()); // Filter dates // if (since != null & until != null) { crit.add(Restrictions.disjunction() .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ACHIEVED)) .add(Restrictions.between(Milestones.ACHIEVED, since, until))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ESTIMATEDDATE)) .add(Restrictions.between(Milestones.ESTIMATEDDATE, since, until))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.PLANNED)) .add(Restrictions.between(Milestones.PLANNED, since, until)))); } else if (since != null) { crit.add(Restrictions.disjunction() .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ACHIEVED)) .add(Restrictions.ge(Milestones.ACHIEVED, since))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ESTIMATEDDATE)) .add(Restrictions.ge(Milestones.ESTIMATEDDATE, since))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.PLANNED)) .add(Restrictions.ge(Milestones.PLANNED, since)))); } else if (until != null) { crit.add(Restrictions.disjunction() .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ACHIEVED)) .add(Restrictions.le(Milestones.ACHIEVED, until))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ESTIMATEDDATE)) .add(Restrictions.le(Milestones.ESTIMATEDDATE, until))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.PLANNED)) .add(Restrictions.le(Milestones.PLANNED, until)))); } // Filter by projects // crit.add(Restrictions.in(Milestones.PROJECT, projects)); // Filter by milestone type // if (milestonetype != null) { crit.add(Restrictions.eq(Milestones.MILESTONETYPE, milestonetype)); } // Filter by milestone category // if (milestonecategory != null) { crit.add(Restrictions.eq(Milestones.MILESTONECATEGORY, milestonecategory)); } // Filter by pendings // if (MilestonePending.YES.name().equals(milestonePending)) { crit.add(Restrictions.isNull(Milestones.ACHIEVED)); } else if (MilestonePending.NO.name().equals(milestonePending)) { crit.add(Restrictions.isNotNull(Milestones.ACHIEVED)); } // Left join milestone type for null relation crit.createCriteria(Milestones.MILESTONETYPE, CriteriaSpecification.LEFT_JOIN); // Joins addJoins(crit, joins); // Orders addOrder(crit, property, order); list = crit.list(); } return list; }
From source file:es.sm2.openppm.core.dao.MilestoneDAO.java
License:Open Source License
/** * Find milestones filter by project and activity and dates * // www. j a v a 2 s . c o m * @param project * @param projectactivity * @param since * @param until * @param hasCategory * @param property * @param order * @param joins * @return */ @SuppressWarnings("unchecked") public List<Milestones> filter(Project project, Projectactivity projectactivity, Date since, Date until, boolean hasCategory, String property, String order, List<String> joins) { List<Milestones> list = new ArrayList<Milestones>(); if (project != null) { Criteria crit = getSession().createCriteria(getPersistentClass()); // Filter dates // if (since != null & until != null) { crit.add(Restrictions.disjunction() .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ACHIEVED)) .add(Restrictions.between(Milestones.ACHIEVED, since, until))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ESTIMATEDDATE)) .add(Restrictions.between(Milestones.ESTIMATEDDATE, since, until))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.PLANNED)) .add(Restrictions.between(Milestones.PLANNED, since, until)))); } else if (since != null) { crit.add(Restrictions.disjunction() .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ACHIEVED)) .add(Restrictions.ge(Milestones.ACHIEVED, since))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ESTIMATEDDATE)) .add(Restrictions.ge(Milestones.ESTIMATEDDATE, since))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.PLANNED)) .add(Restrictions.ge(Milestones.PLANNED, since)))); } else if (until != null) { crit.add(Restrictions.disjunction() .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ACHIEVED)) .add(Restrictions.le(Milestones.ACHIEVED, until))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ESTIMATEDDATE)) .add(Restrictions.le(Milestones.ESTIMATEDDATE, until))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.PLANNED)) .add(Restrictions.le(Milestones.PLANNED, until)))); } // Filter by project // if (project != null) { crit.add(Restrictions.eq(Milestones.PROJECT, project)); } // Filter by activity // if (projectactivity != null) { crit.add(Restrictions.eq(Milestones.PROJECTACTIVITY, projectactivity)); } // Filter by has category // if (hasCategory) { crit.add(Restrictions.isNotNull(Milestones.MILESTONECATEGORY)); } // Joins addJoins(crit, joins); // Orders addOrder(crit, property, order); list = crit.list(); } return list; }
From source file:es.sm2.openppm.core.dao.TimesheetDAO.java
License:Open Source License
/** * Find time sheet affected for update date out * /* ww w .ja v a 2 s . co m*/ * @param teammember * @param newDateOut * @return */ @SuppressWarnings("unchecked") public List<Timesheet> timeSheetsForUpdateOut(Teammember teammember, Date newDateOut) { Criteria crit = getSession().createCriteria(getPersistentClass()) .add(Restrictions.eq(Timesheet.PROJECTACTIVITY, teammember.getProjectactivity())) .add(Restrictions.eq(Timesheet.EMPLOYEE, teammember.getEmployee())) .add(Restrictions.conjunction() .add(Restrictions.le(Timesheet.INITDATE, DateUtil.getFirstWeekDay(teammember.getDateOut()))) .add(Restrictions.ge(Timesheet.ENDDATE, DateUtil.getLastWeekDay(newDateOut)))); return crit.list(); }
From source file:es.sm2.openppm.core.dao.TimesheetDAO.java
License:Open Source License
/** * Find time sheet affected for update date in * /*from w w w. j av a 2 s . co m*/ * @param teammember * @param newDateOut * @return */ @SuppressWarnings("unchecked") public List<Timesheet> timeSheetsForUpdateIn(Teammember teammember, Date newDateIn) { Criteria crit = getSession().createCriteria(getPersistentClass()) .add(Restrictions.eq(Timesheet.PROJECTACTIVITY, teammember.getProjectactivity())) .add(Restrictions.eq(Timesheet.EMPLOYEE, teammember.getEmployee())) .add(Restrictions.conjunction() .add(Restrictions.ge(Timesheet.INITDATE, DateUtil.getFirstWeekDay(teammember.getDateIn()))) .add(Restrictions.le(Timesheet.ENDDATE, DateUtil.getLastWeekDay(newDateIn)))); return crit.list(); }
From source file:es.sm2.openppm.core.model.impl.Projectfollowup.java
License:Open Source License
public Integer getDaysToDate() throws Exception { if (daysToDate == null) { ProjectLogic projectLogic = new ProjectLogic(settings, null); ProjectActivityLogic activityLogic = new ProjectActivityLogic(settings, null); ProjectCalendarExceptionsLogic projectCalendarExceptionsLogic = new ProjectCalendarExceptionsLogic(); ProjectcalendarLogic projectCalendarLogic = new ProjectcalendarLogic(); Project project = projectLogic.findByFollowup(this); Projectactivity rootAct = project.getRootActivity(); Projectcalendar projectCalendar = projectCalendarLogic.consCalendarByProject(project); List<Projectcalendarexceptions> exceptions = projectCalendarExceptionsLogic .findByRelation(Projectcalendarexceptions.PROJECTCALENDAR, projectCalendar); List<Date> exceptionDates = ProjectCalendarExceptionsLogic.getExceptionDates(exceptions); Junction restrictions = Restrictions.conjunction() .add(Restrictions.eq(Projectactivity.PROJECT, project)) .add(Restrictions.isNull(Projectactivity.ACTUALINITDATE)); if (rootAct != null && rootAct.getActualInitDate() != null && rootAct.getPlanInitDate() != null && activityLogic.rowCount(restrictions) == 0 && rootAct.getActualInitDate().before(rootAct.getPlanInitDate())) { daysToDate = ValidateUtil.calculateWorkDays(rootAct.getActualInitDate(), getFollowupDate(), exceptionDates);/* w w w . jav a 2 s. c o m*/ } else if (rootAct != null && rootAct.getPlanInitDate() != null) { daysToDate = ValidateUtil.calculateWorkDays(rootAct.getPlanInitDate(), getFollowupDate(), exceptionDates); } else { daysToDate = ValidateUtil.calculateWorkDays(project.getPlannedInitDate(), getFollowupDate(), exceptionDates); } } return daysToDate; }
From source file:eu.interedition.text.Name.java
License:Apache License
public static Set<Name> get(Session session, Set<Name> names) { final Set<Name> result = Sets.newHashSet(); if (names.isEmpty()) { return result; }/*from w w w. j ava 2 s. c o m*/ final Set<Name> toFind = Sets.newHashSet(names); final Disjunction or = Restrictions.disjunction(); for (Name name : toFind) { final Conjunction and = Restrictions.conjunction(); and.add(Restrictions.eq("localName", name.getLocalName())); final URI ns = name.getNamespace(); and.add(ns == null ? Restrictions.isNull("namespaceURI") : Restrictions.eq("namespaceURI", ns.toString())); or.add(and); } for (Name name : SQL.iterate(session.createCriteria(Name.class).add(or), Name.class)) { toFind.remove(name); result.add(name); } for (Name name : toFind) { result.add((Name) session.merge(name)); } return result; }
From source file:eu.interedition.text.query.AndQueryOperator.java
License:Apache License
@Override
Junction junction() {
return Restrictions.conjunction();
}
From source file:gov.nih.nci.caarray.dao.SampleDaoImpl.java
License:BSD License
/** * {@inheritDoc}//w ww .j av a 2 s . c o m */ @SuppressWarnings({ "unchecked", "PMD" }) public <T extends AbstractBioMaterial> List<T> searchByCriteria(PageSortParams<T> params, BiomaterialSearchCriteria criteria) { Criteria c = getCurrentSession().createCriteria(AbstractBioMaterial.class); if (criteria.getExperiment() != null) { c.add(Restrictions.eq("experiment", criteria.getExperiment())); } if (!criteria.getNames().isEmpty()) { c.add(Restrictions.in("name", criteria.getNames())); } if (!criteria.getExternalIds().isEmpty()) { c.add(Restrictions.in("externalId", criteria.getExternalIds())); } if (!criteria.getBiomaterialClasses().isEmpty()) { // unfortunately due to a hibernate bug we have to explicitly specify discriminators // rather than being able to use classnames Set<String> discriminators = new HashSet<String>(); for (Class<? extends AbstractBioMaterial> bmClass : criteria.getBiomaterialClasses()) { discriminators.add(getDiscriminator(bmClass)); } c.add(Restrictions.in("class", discriminators)); } if (!criteria.getAnnotationCriterions().isEmpty()) { Set<String> diseaseStates = new HashSet<String>(); Set<String> tissueSites = new HashSet<String>(); Set<String> cellTypes = new HashSet<String>(); Set<String> materialTypes = new HashSet<String>(); for (AnnotationCriterion ac : criteria.getAnnotationCriterions()) { if (ac.getCategory().getName().equals(ExperimentOntologyCategory.DISEASE_STATE.getCategoryName())) { diseaseStates.add(ac.getValue()); } else if (ac.getCategory().getName() .equals(ExperimentOntologyCategory.CELL_TYPE.getCategoryName())) { cellTypes.add(ac.getValue()); } else if (ac.getCategory().getName() .equals(ExperimentOntologyCategory.MATERIAL_TYPE.getCategoryName())) { materialTypes.add(ac.getValue()); } else if (ac.getCategory().getName() .equals(ExperimentOntologyCategory.ORGANISM_PART.getCategoryName())) { tissueSites.add(ac.getValue()); } } if (!diseaseStates.isEmpty() || !tissueSites.isEmpty() || !cellTypes.isEmpty() || !materialTypes.isEmpty()) { Junction and = Restrictions.conjunction(); addAnnotationCriterionValues(c, and, diseaseStates, "diseaseState", "ds"); addAnnotationCriterionValues(c, and, tissueSites, "tissueSite", "ts"); addAnnotationCriterionValues(c, and, materialTypes, "materialType", "mt"); addAnnotationCriterionValues(c, and, cellTypes, "cellType", "ct"); c.add(and); } } c.setFirstResult(params.getIndex()); if (params.getPageSize() > 0) { c.setMaxResults(params.getPageSize()); } c.addOrder(toOrder(params)); return c.list(); }
From source file:gov.nih.nci.caintegrator.data.CaIntegrator2DaoImpl.java
License:BSD License
/** * {@inheritDoc}/*from www. j a v a 2s .c o m*/ */ @Override @SuppressWarnings(UNCHECKED) // Hibernate operations are untyped public List<SegmentData> findMatchingSegmentDatasByLocation(List<SegmentData> segmentDatasToMatch, Study study, Platform platform) { Criteria segmentDataCrit = getCurrentSession().createCriteria(SegmentData.class); Criteria arrayDataCrit = segmentDataCrit.createCriteria("arrayData"); Criteria reporterListsCrit = arrayDataCrit.createCriteria("reporterLists"); reporterListsCrit.add(Restrictions.eq(PLATFORM_ASSOCIATION, platform)); arrayDataCrit.add(Restrictions.eq(STUDY_ASSOCIATION, study)); Junction overallOrStatement = Restrictions.disjunction(); for (SegmentData segmentData : segmentDatasToMatch) { ChromosomalLocation location = segmentData.getLocation(); overallOrStatement.add(Restrictions.conjunction() .add(Restrictions.eq("Location.startPosition", location.getStartPosition())) .add(Restrictions.eq("Location.endPosition", location.getEndPosition()))); } segmentDataCrit.add(overallOrStatement); return segmentDataCrit.list(); }
From source file:gov.nih.nci.caintegrator.data.CaIntegrator2DaoImpl.java
License:BSD License
/** * {@inheritDoc}//from w w w . j av a2 s .com */ @Override @SuppressWarnings(UNCHECKED) // Hibernate operations are untyped public List<Gene> findGenesByLocation(String chromosome, Integer startPosition, Integer endPosition, GenomeBuildVersionEnum genomeBuildVersion) { String locStartPosition = "location.startPosition"; String locEndPosition = "location.endPosition"; Criteria geneLocationCriteria = getCurrentSession().createCriteria(GeneChromosomalLocation.class); // (gene.startPos <= startPosition && gene.endPos >= startPosition) // || (gene.startPos >= lowerInput && gene.startPos <= higherInput) Junction overallOrStatement = Restrictions.disjunction(); overallOrStatement.add(Restrictions.conjunction().add(Restrictions.le(locStartPosition, startPosition)) .add(Restrictions.ge(locEndPosition, startPosition))); overallOrStatement.add(Restrictions.conjunction().add(Restrictions.ge(locStartPosition, startPosition)) .add(Restrictions.le(locStartPosition, endPosition))); geneLocationCriteria.add(overallOrStatement); geneLocationCriteria.add(getChromosomeRestriction(chromosome)); geneLocationCriteria.createCriteria("geneLocationConfiguration") .add(Restrictions.eq("genomeBuildVersion", genomeBuildVersion)); geneLocationCriteria.setProjection(Projections.property("geneSymbol")); List<String> geneSymbols = geneLocationCriteria.list(); return geneSymbols.isEmpty() ? new ArrayList<Gene>() : getCurrentSession().createCriteria(Gene.class) .setProjection(Projections.distinct(Projections.property(SYMBOL_ATTRIBUTE))) .add(Restrictions.in(SYMBOL_ATTRIBUTE, geneSymbols)).addOrder(Order.asc(SYMBOL_ATTRIBUTE)) .list(); }