Example usage for org.hibernate.criterion Restrictions disjunction

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

Introduction

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

Prototype

public static Disjunction disjunction() 

Source Link

Document

Group expressions together in a single disjunction (A or B or C...).

Usage

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;
}