Example usage for org.hibernate.criterion Restrictions ilike

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

Introduction

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

Prototype

public static Criterion ilike(String propertyName, Object value) 

Source Link

Document

A case-insensitive "like" (similar to Postgres ilike operator)

Usage

From source file:com.hmsinc.epicenter.model.geography.impl.GeographyRepositoryImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
private <T extends Geography> List<Long> getGeographyMatches(final String name, final Class<T> geographyType) {
    Validate.notNull(name);/*ww w  .  j av  a 2s  .com*/
    Validate.notNull(geographyType);

    return criteriaQuery(entityManager, geographyType).add(Restrictions.ilike("name", name))
            .setProjection(Projections.property("id")).list();
}

From source file:com.hypersocket.local.LocalUserRepositoryImpl.java

License:Open Source License

@Override
@Transactional(readOnly = true)/* ww w .j  a va2  s  .co m*/
public Long countUsers(final Realm realm, final String searchPattern) {
    return getCount(LocalUser.class, new CriteriaConfiguration() {
        @Override
        public void configure(Criteria criteria) {
            criteria.add(Restrictions.eq("realm", realm));
            criteria.add(Restrictions.eq("deleted", false));
            criteria.add(Restrictions.eq("hidden", false));
            if (!StringUtils.isEmpty(searchPattern)) {
                criteria.add(Restrictions.ilike("name", searchPattern));
            }

        }
    });
}

From source file:com.hypersocket.local.LocalUserRepositoryImpl.java

License:Open Source License

@Override
@Transactional(readOnly = true)//w w w. java2 s. c  o m
public Long countGroups(final Realm realm, final String searchPattern) {
    return getCount(LocalGroup.class, new CriteriaConfiguration() {
        @Override
        public void configure(Criteria criteria) {
            criteria.add(Restrictions.eq("realm", realm));
            criteria.add(Restrictions.eq("deleted", false));
            criteria.add(Restrictions.eq("hidden", false));
            if (!StringUtils.isEmpty(searchPattern)) {
                criteria.add(Restrictions.ilike("name", searchPattern));
            }
        }
    });
}

From source file:com.hypersocket.repository.AbstractRepositoryImpl.java

License:Open Source License

@Override
@Transactional(readOnly = true)//from   w  ww . j av a2  s . c o  m
public Long getCount(Class<?> clz, String searchColumn, String searchPattern,
        CriteriaConfiguration... configs) {

    Criteria criteria = createCriteria(clz);

    for (CriteriaConfiguration c : configs) {
        c.configure(criteria);
    }

    if (!StringUtils.isEmpty(searchPattern)) {
        criteria.add(Restrictions.ilike(searchColumn, searchPattern));
    }

    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    criteria.setProjection(Projections.rowCount());

    return (long) criteria.uniqueResult();
}

From source file:com.hypersocket.repository.AbstractRepositoryImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
@Transactional(readOnly = true)/*from w ww . j  a  v a2  s  .c  o m*/
public <T> List<T> search(Class<T> clz, final String searchColumn, final String searchPattern, final int start,
        final int length, final ColumnSort[] sorting, CriteriaConfiguration... configs) {
    Criteria criteria = createCriteria(clz);
    if (!StringUtils.isEmpty(searchPattern)) {
        criteria.add(Restrictions.ilike(searchColumn, searchPattern));
    }

    for (CriteriaConfiguration c : configs) {
        c.configure(criteria);
    }

    for (ColumnSort sort : sorting) {
        criteria.addOrder(sort.getSort() == Sort.ASC ? Order.asc(sort.getColumn().getColumnName())
                : Order.desc(sort.getColumn().getColumnName()));
    }

    criteria.setProjection(Projections.distinct(Projections.id()));

    criteria.setFirstResult(start);
    criteria.setMaxResults(length);

    List<T> ids = (List<T>) criteria.list();

    if (ids.isEmpty()) {
        return new ArrayList<T>();
    }

    criteria = createCriteria(clz);

    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
    criteria.add(Restrictions.in("id", ids));

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

From source file:com.hypersocket.resource.AbstractAssignableResourceRepositoryImpl.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override//  w w  w.java  2s. c  om
public Collection<T> searchAssignedResources(List<Principal> principals, final String searchPattern,
        final int start, final int length, final ColumnSort[] sorting, CriteriaConfiguration... configs) {

    Criteria criteria = createCriteria(getResourceClass());
    criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);

    if (StringUtils.isNotBlank(searchPattern)) {
        criteria.add(Restrictions.ilike("name", searchPattern));
    }

    for (CriteriaConfiguration c : configs) {
        c.configure(criteria);
    }

    criteria.add(Restrictions.eq("realm", principals.get(0).getRealm()));
    criteria = criteria.createCriteria("roles");
    criteria.add(Restrictions.eq("allUsers", true));

    Set<T> everyone = new HashSet<T>(criteria.list());

    criteria = createCriteria(getResourceClass());

    ProjectionList projList = Projections.projectionList();
    projList.add(Projections.property("id"));
    projList.add(Projections.property("name"));

    criteria.setProjection(Projections.distinct(projList));
    criteria.setFirstResult(start);
    criteria.setMaxResults(length);

    if (StringUtils.isNotBlank(searchPattern)) {
        criteria.add(Restrictions.ilike("name", searchPattern));
    }

    for (CriteriaConfiguration c : configs) {
        c.configure(criteria);
    }

    for (ColumnSort sort : sorting) {
        criteria.addOrder(sort.getSort() == Sort.ASC ? Order.asc(sort.getColumn().getColumnName())
                : Order.desc(sort.getColumn().getColumnName()));
    }

    criteria.add(Restrictions.eq("realm", principals.get(0).getRealm()));

    criteria = criteria.createCriteria("roles");
    criteria.add(Restrictions.eq("allUsers", false));
    criteria = criteria.createCriteria("principals");

    List<Long> ids = new ArrayList<Long>();
    for (Principal p : principals) {
        ids.add(p.getId());
    }
    criteria.add(Restrictions.in("id", ids));

    List<Object[]> results = (List<Object[]>) criteria.list();

    if (results.size() > 0) {
        Long[] entityIds = new Long[results.size()];
        int idx = 0;
        for (Object[] obj : results) {
            entityIds[idx++] = (Long) obj[0];
        }

        criteria = createCriteria(getResourceClass());
        criteria.add(Restrictions.in("id", entityIds));

        everyone.addAll((List<T>) criteria.list());
    }
    return everyone;
}

From source file:com.hypersocket.resource.AbstractAssignableResourceRepositoryImpl.java

License:Open Source License

@Override
public Long getAssignedResourceCount(List<Principal> principals, final String searchPattern,
        CriteriaConfiguration... configs) {

    Criteria criteria = createCriteria(getResourceClass());
    criteria.setProjection(Projections.property("id"));
    criteria.setResultTransformer(CriteriaSpecification.PROJECTION);
    if (StringUtils.isNotBlank(searchPattern)) {
        criteria.add(Restrictions.ilike("name", searchPattern));
    }/*from  w  ww  .  ja  v  a 2s. c o m*/

    for (CriteriaConfiguration c : configs) {
        c.configure(criteria);
    }

    criteria.add(Restrictions.eq("realm", principals.get(0).getRealm()));
    criteria = criteria.createCriteria("roles");
    criteria.add(Restrictions.eq("allUsers", true));

    List<?> ids = criteria.list();

    criteria = createCriteria(getResourceClass());
    criteria.setProjection(Projections.countDistinct("name"));
    criteria.setResultTransformer(CriteriaSpecification.PROJECTION);
    if (StringUtils.isNotBlank(searchPattern)) {
        criteria.add(Restrictions.ilike("name", searchPattern));
    }

    for (CriteriaConfiguration c : configs) {
        c.configure(criteria);
    }

    criteria.add(Restrictions.eq("realm", principals.get(0).getRealm()));
    if (ids.size() > 0) {
        criteria.add(Restrictions.not(Restrictions.in("id", ids)));
    }

    criteria = criteria.createCriteria("roles");
    criteria.add(Restrictions.eq("allUsers", false));
    criteria = criteria.createCriteria("principals");
    List<Long> pids = new ArrayList<Long>();
    for (Principal p : principals) {
        pids.add(p.getId());
    }
    criteria.add(Restrictions.in("id", pids));

    Long count = (Long) criteria.uniqueResult();
    return count + ids.size();

}

From source file:com.hypersocket.session.SessionRepositoryImpl.java

License:Open Source License

@Override
@Transactional(readOnly = true)//from   ww w  .  j a  v  a 2  s  .c  o  m
public List<Session> search(Realm realm, final String searchPattern, int start, int length,
        ColumnSort[] sorting, CriteriaConfiguration... configs) {
    return super.search(getEntityClass(), "uuid", "", start, length, sorting,
            ArrayUtils.addAll(configs, new RealmOrSystemRealmCriteria(realm), new CriteriaConfiguration() {

                @Override
                public void configure(Criteria criteria) {
                    criteria.add(Restrictions.eq("system", false));
                    criteria.add(Restrictions.isNull("signedOut"));

                    if (StringUtils.isNotEmpty(searchPattern)) {
                        criteria = criteria.createCriteria("principal");
                        criteria.add(Restrictions.ilike("name", searchPattern));
                    }

                }
            }));
}

From source file:com.hypersocket.session.SessionRepositoryImpl.java

License:Open Source License

@Override
@Transactional(readOnly = true)/*  ww w .ja v a2 s .  co  m*/
public long getResourceCount(Realm realm, final String searchPattern, CriteriaConfiguration... configs) {
    return getCount(getEntityClass(), "uuid", "",
            ArrayUtils.addAll(configs, new RealmOrSystemRealmCriteria(realm), new CriteriaConfiguration() {

                @Override
                public void configure(Criteria criteria) {
                    criteria.add(Restrictions.eq("system", false));
                    criteria.add(Restrictions.isNull("signedOut"));

                    if (StringUtils.isNotEmpty(searchPattern)) {
                        criteria = criteria.createCriteria("principal");
                        criteria.add(Restrictions.ilike("name", searchPattern));
                    }
                }
            }));
}

From source file:com.ignou.aadhar.dao.hibernate.AddressDaoHibernate.java

License:Open Source License

@Override
@Transactional/*from  w  w  w.j  ava  2 s .  com*/
public Address fetchOrCreate(Address localAddress) {

    /* We will check if there is any object with the address values similar
     * to the one provided in the argument object. If yes, we will return
     * the same object, otherwise we will create the object and return the
     * same.
     */
    Criteria criteria = getSessionFactory().getCurrentSession().createCriteria(Address.class)
            .add(Restrictions.ilike("addressLine1", localAddress.getAddressLine1()))
            .add(Restrictions.ilike("addressLine2", localAddress.getAddressLine2()))
            .add(Restrictions.ilike("addressLine3", localAddress.getAddressLine3()))
            .add(Restrictions.eq("city", localAddress.getCity()));

    /* Execute the criteria and see if any records are fetched */
    Address dbAddress = (Address) criteria.uniqueResult();

    if (dbAddress == null) {
        /* No record found. Lets create a db record and return the same. */
        dbAddress = add(localAddress);
    }

    return dbAddress;
}