List of usage examples for org.hibernate.criterion Restrictions disjunction
public static Disjunction disjunction()
From source file:com.painiu.core.dao.hibernate.PhotoDAOHibernate.java
License:Open Source License
static Criteria buildPhotoCriteria(final Session session, User user, String[] tags, boolean taggedAll, String text, Relation relation, boolean count) { Criteria criteria = session.createCriteria(Photo.class); if (user != null) { criteria.add(Restrictions.eq("user", user)); if (relation != null) { criteria.add(/*from w w w.j av a2 s.c om*/ Restrictions.sqlRestriction(" {alias}.privacy & ? > 0", relation, UserTypes.relation())); } } else { criteria.add( Restrictions.sqlRestriction(" {alias}.privacy & ? > 0", Relation.NONE, UserTypes.relation())); criteria.setFetchMode("user", FetchMode.JOIN); } //if (user == null && group == null) { if (user == null) { Disjunction disjState = Restrictions.disjunction(); disjState.add(Restrictions.eq("state", Photo.State.USER_POPULAR)); disjState.add(Restrictions.eq("state", Photo.State.USER_COMMENDATORY)); disjState.add(Restrictions.eq("state", Photo.State.USER_SENIOR)); criteria.add(disjState); } //if (album != null) { // criteria.createAlias("albumPhotos", "ap"); // criteria.add( Restrictions.eq("ap.album", album) ); //} //if (group != null) { // criteria.createAlias("groupPhotos", "gp"); // criteria.add( Restrictions.eq("gp.group", group) ); //} if ((tags != null && tags.length > 0) || text != null) { Criteria subCriteria = criteria.createCriteria("photoTags", "tags"); if (tags != null && tags.length > 0) { if (taggedAll) { Conjunction conj = Restrictions.conjunction(); for (int i = 0; i < tags.length; i++) { conj.add(Restrictions.eq("tagName", tags[i])); } subCriteria.add(conj); } else { Disjunction disj = Restrictions.disjunction(); for (int i = 0; i < tags.length; i++) { disj.add(Restrictions.eq("tagName", tags[i])); } subCriteria.add(disj); } } if (text != null) { Disjunction disj = Restrictions.disjunction(); disj.add(Restrictions.like("title", text, MatchMode.ANYWHERE)); disj.add(Restrictions.like("description", text, MatchMode.ANYWHERE)); disj.add(Restrictions.eq("tags.tagName", text)); criteria.add(disj); } } // TODO order parameters if (!count) { /*if (album != null) { criteria.addOrder(Order.asc("ap.position")); } else*/ /*if (group != null) { criteria.addOrder(Order.asc("gp.position")); } else {*/ criteria.addOrder(Order.desc("timestamp")); //} } // distinct ? if ((tags != null && tags.length > 1) || text != null) { ProjectionList proj = Projections.projectionList(); proj.add(Projections.property("id")).add(Projections.property("title")) .add(Projections.property("width")).add(Projections.property("height")) .add(Projections.property("address.host")).add(Projections.property("address.dir")) .add(Projections.property("address.filename")).add(Projections.property("address.secret")) .add(Projections.property("address.username")).add(Projections.property("address.fileKey")); if (user == null) { criteria.createAlias("user", "user"); proj.add(Projections.property("user.id")).add(Projections.property("user.username")) .add(Projections.property("user.nickname")).add(Projections.property("user.buddyIcon.host")) .add(Projections.property("user.buddyIcon.dir")) .add(Projections.property("user.buddyIcon.filename")) .add(Projections.property("user.buddyIcon.username")) .add(Projections.property("user.buddyIcon.fileKey")); } criteria.setProjection(Projections.distinct(proj)); criteria.setResultTransformer(new PhotoBeanResultTransformer()); } return criteria; }
From source file:com.qcadoo.model.api.search.SearchRestrictions.java
License:Open Source License
/** * Creates restriction which join given restrictions with "OR" operator. * /*from ww w.j a v a 2s . com*/ * @param firstCriterion * first criterion * @param secondCriterion * second criterion * @param otherCriteria * other criteria * @return criterion */ public static SearchCriterion or(final SearchCriterion firstCriterion, final SearchCriterion secondCriterion, final SearchCriterion... otherCriteria) { Disjunction disjunction = Restrictions.disjunction(); disjunction.add(firstCriterion.getHibernateCriterion()); disjunction.add(secondCriterion.getHibernateCriterion()); for (SearchCriterion criterion : otherCriteria) { disjunction.add(criterion.getHibernateCriterion()); } return new SearchCriterionImpl(disjunction); }
From source file:com.qcadoo.model.internal.search.SearchDisjunctionImpl.java
License:Open Source License
public SearchDisjunctionImpl() { disjunction = Restrictions.disjunction(); }
From source file:com.sccl.attech.common.service.BaseService.java
License:Open Source License
/** * ?/*from w ww. j a va 2s .c o m*/ * @param user ?UserUtils.getUser()?? * @param officeAlias ??dc.createAlias("office", "office"); * @param userAlias ??? * @return ? */ protected static Junction dataScopeFilter(User user, String officeAlias, String userAlias) { // ???? List<String> dataScope = Lists.newArrayList(); Junction junction = Restrictions.disjunction(); // ??? if (!user.isAdmin()) { for (Role r : user.getRoleList()) { if (!dataScope.contains(r.getDataScope()) && StringUtils.isNotBlank(officeAlias)) { boolean isDataScopeAll = false; if (Role.DATA_SCOPE_ALL.equals(r.getDataScope())) { isDataScopeAll = true; } else if (Role.DATA_SCOPE_COMPANY_AND_CHILD.equals(r.getDataScope())) { junction.add(Restrictions.eq("company.id", user.getCompany().getId())); //junction.add(Restrictions.like(officeAlias+".parentIds", "%"+user.getCompany().getParentIds()+","+user.getCompany().getId()+"%")); } // else if (Role.DATA_SCOPE_COMPANY.equals(r.getDataScope())){ // junction.add(Restrictions.eq(officeAlias+".id", user.getCompany().getId())); // junction.add(Restrictions.and(Restrictions.eq(officeAlias+".id", user.getCompany().getId()), // Restrictions.eq(officeAlias+".type", "2"))); // ? // } else if (Role.DATA_SCOPE_OFFICE_AND_CHILD.equals(r.getDataScope())) { junction.add(Restrictions.eq(officeAlias + ".id", user.getOffice().getId())); junction.add(Restrictions.like(officeAlias + ".parentIds", "%" + user.getOffice().getParentIds() + "," + user.getOffice().getId() + "%")); } else if (Role.DATA_SCOPE_OFFICE.equals(r.getDataScope())) { junction.add(Restrictions.eq(officeAlias + ".id", user.getOffice().getId())); } else if (Role.DATA_SCOPE_CUSTOM.equals(r.getDataScope())) { junction.add(Restrictions.in(officeAlias + ".id", r.getOfficeIdList())); } //else if (Role.DATA_SCOPE_SELF.equals(r.getDataScope())){ if (!isDataScopeAll) { if (StringUtils.isNotBlank(userAlias)) { junction.add(Restrictions.eq(userAlias + ".id", user.getId())); } else { junction.add(Restrictions.isNull(officeAlias + ".id")); } } else { // ????? junction = Restrictions.disjunction(); break; } dataScope.add(r.getDataScope()); } } } return junction; }
From source file:com.square.core.dao.implementations.ActionDaoImplementation.java
License:Open Source License
@SuppressWarnings("unchecked") @Override//from w w w. java 2 s.c o m public List<Action> rechercherActionsSources(CritereActionSyntheseDto critereActionSyntheseDto) { final Criteria criteria = createCriteria(Action.class); // Critere de la personne criteria.createAlias("actionAffectation", "actionAffectationAlias"); criteria.add( Restrictions.eq("actionAffectationAlias.personne.id", critereActionSyntheseDto.getIdPersonne())); // Critere action source : l'action source doit etre null ou rattache une autre personne // (pb des actions sur personnes morales dont la source est une action sur personne physique) criteria.createAlias("actionSource", "actionSourceAlias", CriteriaSpecification.LEFT_JOIN); criteria.createAlias("actionSourceAlias.actionAffectation", "actionSourceAffectationAlias", CriteriaSpecification.LEFT_JOIN); final Junction disjunction = Restrictions.disjunction(); disjunction.add(Restrictions.isNull("actionSource")); disjunction.add(Restrictions.not(Restrictions.eqProperty("actionSourceAffectationAlias.personne.id", "actionAffectationAlias.personne.id"))); criteria.add(disjunction); // Critere sur les opportunits if (critereActionSyntheseDto.getIdOpportunite() != null) { criteria.add(Restrictions.eq("actionAffectationAlias.opportunite.id", critereActionSyntheseDto.getIdOpportunite())); } // Critre sur la date d'effet if (critereActionSyntheseDto.getFiltrerDateCreation() != null && critereActionSyntheseDto.getFiltrerDateCreation()) { criteria.add(Restrictions.le("dateCreation", Calendar.getInstance())); } criteria.add(Restrictions.eq("supprime", false)); // Ordre criteria.addOrder(Order.desc(CHAMP_DATE)); return criteria.list(); }
From source file:com.square.synchro.app.noyau.dao.implementations.SynchroAppTableCrspDaoImpl.java
License:Open Source License
@Override public String rechercherCrsp(String identifiantObjet, String identifiantApp, String identifiantAppCrsp, String typeObjet) {/* w ww. j ava 2 s .co m*/ final Criteria criteria = createCriteria(SynchroAppTableCrsp.class); if (identifiantObjet != null) { final Disjunction conjunction = Restrictions.disjunction(); conjunction.add(Restrictions.eq("identifiantObjet", identifiantObjet)); conjunction.add(Restrictions.eq("identifiantObjetCrsp", identifiantObjet)); criteria.add(conjunction); } if (identifiantApp != null) { final Disjunction conjunction = Restrictions.disjunction(); conjunction.add(Restrictions.eq("identifiantApp", identifiantApp)); conjunction.add(Restrictions.eq("identifiantAppCrsp", identifiantApp)); criteria.add(conjunction); } if (identifiantAppCrsp != null) { final Disjunction conjunction = Restrictions.disjunction(); conjunction.add(Restrictions.eq("identifiantApp", identifiantAppCrsp)); conjunction.add(Restrictions.eq("identifiantAppCrsp", identifiantAppCrsp)); criteria.add(conjunction); } if (typeObjet != null) { criteria.add(Restrictions.eq("typeObjet", typeObjet)); } final SynchroAppTableCrsp result = (SynchroAppTableCrsp) criteria.uniqueResult(); if (result != null) { return result.getIdentifiantObjet().equals(identifiantObjet) ? result.getIdentifiantObjetCrsp() : result.getIdentifiantObjet(); } return null; }
From source file:com.thoughtworks.go.server.persistence.MaterialRepository.java
License:Apache License
private DetachedCriteria buildModificationDetachedQuery(List<Criterion> criteria) { DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Modification.class); Disjunction disjunction = Restrictions.disjunction(); detachedCriteria.add(disjunction);/*w ww .java 2 s.c o m*/ for (Criterion criterion : criteria) { disjunction.add(criterion); } detachedCriteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); return detachedCriteria; }
From source file:com.tysanclan.site.projectewok.entities.dao.hibernate.AchievementIconDAOImpl.java
License:Open Source License
@Override protected Criteria createCriteria(SearchFilter<AchievementIcon> filter) { Criteria criteria = getSession().createCriteria(AchievementIcon.class); if (filter instanceof AchievementIconFilter) { AchievementIconFilter cf = (AchievementIconFilter) filter; if (cf.getUnclaimed() != null) { if (cf.getUnclaimed()) { criteria.add(Restrictions.isNull("achievement")); criteria.add(Restrictions.isNull("proposal")); } else { Disjunction d = Restrictions.disjunction(); d.add(Restrictions.isNotNull("achievement")); d.add(Restrictions.isNotNull("proposal")); criteria.add(d);// w w w . ja v a2 s .c o m } } if (cf.getCreatorOnly() != null) { criteria.add(Restrictions.eq("creatorOnly", cf.getCreatorOnly())); } else if (cf.isCreatorOnlyAsNull()) { criteria.add(Restrictions.isNull("creatorOnly")); } if (cf.getApproved() != null) { criteria.add(Restrictions.eq("approved", cf.getApproved())); } else if (cf.isApprovedAsNull()) { criteria.add(Restrictions.isNull("approved")); } if (cf.getCreator() != null) { criteria.add(Restrictions.eq("creator", cf.getCreator())); } } return criteria; }
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 w w . ja v a 2 s . c o m criteria.setProjection(Projections.property("id")); List<Long> ids = listOf(criteria); return ids; }
From source file:com.webbfontaine.valuewebb.action.pricedb.mp.MPCriteriaContainer.java
License:Open Source License
@Override public Criteria transformUserCriteria(Session session) throws Exception { Criteria criteria = session.createCriteria(MarketPrice.class) .add(Example.create(new MarketPrice()).excludeZeroes()); criteria.createCriteria("sourceOfPrice", "sourceOfPrice"); Junction junction = getMatchAll() ? Restrictions.conjunction() : Restrictions.disjunction(); List<UserCriterion> selectedUserCriteria = getSelectedUserCriteria(); for (UserCriterion userCriterion : selectedUserCriteria) { Criterion transformedCriterion;/* w w w .j a v a 2 s . c o m*/ if ("ageOfPrice".equals(userCriterion.getFullKey())) { transformedCriterion = transformAgeOfPriceToPriceDate(userCriterion, getDefinedCriterion("priceDate")); } else { transformedCriterion = userCriterion.transform(); } if (transformedCriterion != null) { criteria.add(junction.add(transformedCriterion)); } } return criteria; }