Example usage for org.hibernate.criterion Restrictions like

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

Introduction

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

Prototype

public static SimpleExpression like(String propertyName, Object value) 

Source Link

Document

Apply a "like" constraint to the named property

Usage

From source file:com.bookselling.dao.SystemInvoiceDaoImpl.java

@Override
public PaginationData<SystemInvoice> filter(SystemInvoiceFilterForm form, int first, int items) {
    String keyword = form.getKeyword();
    SystemInvoiceFilterType searchBy = form.getSearchBy();
    Date fromDate = form.getFromDate();
    Date toDate = form.getToDate();
    SystemInvoiceOrderType orderBy = form.getOrderBy();
    SortType sortType = form.getSortType();

    Criteria criteria = getSession().createCriteria(SystemInvoice.class);
    criteria.createAlias("poster", "pst").createAlias("post", "ps").createAlias("pst.account", "acc");

    if (keyword == null) {
        keyword = "%" + keyword + "%";
        if (searchBy == SystemInvoiceFilterType.ACCOUNT)
            criteria.add(Restrictions.like("acc.username", keyword));
        else if (searchBy == SystemInvoiceFilterType.POSTER) {
            Name name = new Name();
            name.setName(keyword);//w w w  . j  a v  a2  s .c  o  m
            criteria.add(Restrictions.like("pst.name", name));
        } else if (searchBy == SystemInvoiceFilterType.POST_HEADER)
            criteria.add(Restrictions.like("ps.header", keyword));
    }

    if (fromDate != null)
        criteria.add(Restrictions.ge("createdDate", fromDate));
    if (toDate != null)
        criteria.add(Restrictions.le("createdDate", toDate));

    String propertyName = null;
    if (orderBy == SystemInvoiceOrderType.ACCOUNT)
        propertyName = "acc.username";
    else if (orderBy == SystemInvoiceOrderType.POSTER)
        propertyName = "pst.name";
    else if (orderBy == SystemInvoiceOrderType.POST_HEADER)
        propertyName = "ps.header";
    else if (orderBy == SystemInvoiceOrderType.DATE)
        propertyName = "createdDate";

    //Ly s dng
    long rowCount = (long) criteria.setProjection(Projections.countDistinct("id")).uniqueResult();

    //Ly id
    criteria.setProjection(null).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
            .setProjection(Projections.distinct(Projections.id())).setFirstResult(first).setMaxResults(items)
            .addOrder(sortType == SortType.ASC ? Order.asc(propertyName) : Order.desc(propertyName));

    List<Integer> ids = new ArrayList<>();
    for (Iterator<Integer> temp = criteria.list().iterator(); temp.hasNext();)
        ids.add(temp.next());

    //Criteria ph
    Criteria subCriteria = getSession().createCriteria(SystemInvoice.class);
    subCriteria.createAlias("poster", "pst").createAlias("post", "ps").createAlias("pst.account", "acc")
            .add(Restrictions.in("id", ids.size() > 0 ? ids : Arrays.asList(-1)))
            .addOrder(sortType == SortType.ASC ? Order.asc(propertyName) : Order.desc(propertyName));

    Set<SystemInvoice> invoices = new LinkedHashSet<>(subCriteria.list());
    HibernateInitSupport.setCls(SystemInvoice.class);
    for (SystemInvoice invoice : invoices)
        HibernateInitSupport.initDomain(invoice);

    PaginationData paginationData = new PaginationData(rowCount, items, first, invoices);

    return paginationData;
}

From source file:com.bookselling.dao.TradeDaoImpl.java

private Object[] filterCriteria(TradeFilterForm form, int first, int items, int id) {
    String keyword = form.getKeyword();
    TradeFilterType searchBy = form.getSearchBy();
    Date fromDate = form.getFromDate();
    Date toDate = form.getToDate();
    Double fromPrice = form.getFromPrice();
    Double toPrice = form.getToPrice();
    TradeOrderType orderBy = form.getOrderBy();
    SortType sortType = form.getSortType();

    Criteria criteria = getSession().createCriteria(Trade.class);
    criteria.createAlias("buyer", "bye").createAlias("bye.account", "acc");

    if (keyword != null) {
        keyword = "%" + keyword + "%";
        if (searchBy == TradeFilterType.ADDRESS) {
            Address address = new Address();
            address.setAddress(keyword);
            criteria.add(Restrictions.like("contact.address", address));
        } else if (searchBy == TradeFilterType.PHONE) {
            PhoneNumber phone = new PhoneNumber();
            phone.setPhoneNumber(keyword);
            criteria.add(Restrictions.like("contact.phoneNumber", phone));
        }// w  ww  .  j av a 2 s . c  o  m
    }

    if (fromDate != null)
        criteria.add(Restrictions.ge("createdDate", fromDate));
    if (toDate != null)
        criteria.add(Restrictions.le("createdDate", toDate));

    if (fromPrice != null)
        criteria.add(Restrictions.ge("totalPrice", fromPrice));
    if (toPrice != null)
        criteria.add(Restrictions.le("totalPrice", toPrice));

    String propertyName = null;
    if (orderBy == TradeOrderType.BUYER)
        propertyName = "acc.username";
    else if (orderBy == TradeOrderType.OWNER)
        propertyName = "bye.name";
    else if (orderBy == TradeOrderType.DATE)
        propertyName = "createdDate";
    else if (orderBy == TradeOrderType.PRICE)
        propertyName = "totalPrice";

    if (id != -1)
        criteria.add(Restrictions.eq("bye.id", id));

    //Ly s dng
    long rowCount = (long) criteria.setProjection(Projections.countDistinct("id")).uniqueResult();

    //Ly id
    criteria.setProjection(null).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
            .setProjection(Projections.distinct(Projections.id())).setFirstResult(first).setMaxResults(items)
            .addOrder(sortType == SortType.ASC ? Order.asc(propertyName) : Order.desc(propertyName));

    List<Integer> ids = new ArrayList<>();
    for (Iterator<Integer> temp = criteria.list().iterator(); temp.hasNext();)
        ids.add(temp.next());

    //Criteria ph
    Criteria subCriteria = getSession().createCriteria(Trade.class);
    subCriteria.createAlias("buyer", "bye").createAlias("bye.account", "acc")
            .add(Restrictions.in("id", ids.size() > 0 ? ids : Arrays.asList(-1)))
            .addOrder(sortType == SortType.ASC ? Order.asc(propertyName) : Order.desc(propertyName));

    return new Object[] { subCriteria, rowCount };
}

From source file:com.bookselling.dao.UserDaoImpl.java

@Override
public PaginationData filter(UserFilterForm form, int first, int items) {
    Criteria criteria = getSession().createCriteria(User.class);

    //Get form data
    String keyword = form.getKeyword();
    AccountStatus[] accStatus = form.getAccStatus();
    UserFilterType searchBy = form.getSearchBy();
    Date fromDate = form.getFromDate();
    Date toDate = form.getToDate();
    UserOrderType orderBy = form.getOrderBy();
    SortType sortType = form.getSortType();

    //To criteria
    criteria.createAlias("account", "acc").createAlias("acc.role", "rls").add(Restrictions.eq("rls.id", 1));

    if (keyword != null && !keyword.isEmpty()) {
        keyword = "%" + keyword + "%";
        if (searchBy == UserFilterType.ADDRESS) {
            Address address = new Address();
            address.setAddress(keyword);
            criteria.add(Restrictions.like("contact.address", address));
        } else if (searchBy == UserFilterType.EMAIL) {
            criteria.add(Restrictions.like("acc.email", keyword));
        } else if (searchBy == UserFilterType.OWNER) {
            Name name = new Name();
            name.setName(keyword);/* w  w  w.  ja  va  2  s . c  o  m*/
            criteria.add(Restrictions.like("name", name));
        } else if (searchBy == UserFilterType.PHONE) {
            PhoneNumber phone = new PhoneNumber();
            phone.setPhoneNumber(keyword);
            criteria.add(Restrictions.like("contact.phone", phone));
        } else if (searchBy == UserFilterType.USERNAME) {
            criteria.add(Restrictions.like("acc.username", keyword));
        }
    }

    if (accStatus.length != 0) {
        criteria.add(Restrictions.in("acc.status", accStatus));
    }

    if (fromDate != null)
        criteria.add(Restrictions.ge("acc.createdDate", fromDate));
    if (toDate != null)
        criteria.add(Restrictions.le("acc.createdDate", toDate));

    String propertyName = null;
    if (orderBy == UserOrderType.CREATEDDATE)
        propertyName = "acc.createdDate";
    else if (orderBy == UserOrderType.NAME)
        propertyName = "name";
    else if (orderBy == UserOrderType.STATUS)
        propertyName = "acc.status";
    else if (orderBy == UserOrderType.USERNAME)
        propertyName = "acc.username";

    //Ly s dng
    long rowCount = (long) criteria.setProjection(Projections.countDistinct("id")).uniqueResult();

    //Ly id
    criteria.setProjection(null).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
            .setProjection(Projections.distinct(Projections.id())).setFirstResult(first).setMaxResults(items)
            .addOrder(sortType == SortType.ASC ? Order.asc(propertyName) : Order.desc(propertyName));

    List<Integer> ids = new ArrayList<>();
    for (Iterator<Integer> temp = criteria.list().iterator(); temp.hasNext();)
        ids.add(temp.next());

    //Criteria ph
    Criteria subCriteria = getSession().createCriteria(User.class);
    subCriteria.createAlias("account", "acc").createAlias("acc.role", "rls").add(Restrictions.eq("rls.id", 1))
            .add(Restrictions.in("id", ids.size() > 0 ? ids : Arrays.asList(-1)))
            .addOrder(sortType == SortType.ASC ? Order.asc(propertyName) : Order.desc(propertyName));

    //get list
    Set<User> users = new LinkedHashSet<>(subCriteria.list());
    for (User user : users) {
        HibernateInitSupport.initUser(user);
    }

    //Pagination
    PaginationData paginationData = new PaginationData(rowCount, items, first, users);

    return paginationData;
}

From source file:com.cai310.lottery.web.controller.ticket.TicketBaseController.java

private String getKenoTicketCode(Long schemeId) {
    XDetachedCriteria criteria = new XDetachedCriteria(Ticket.class, "t");
    criteria.add(Restrictions.like("schemeNumber", "%" + schemeId.toString()));
    List<Ticket> tickets = queryService.findByDetachedCriteria(criteria);
    String ticketCode = null;//from  www  .j a v  a 2s .  c  om
    for (Ticket ticket : tickets) {
        String ticketStr = ticket.getSchemeNumber();
        ticketStr = ticketStr.substring(ticketStr.length() - 10);
        if (schemeId.equals(Long.valueOf(ticketStr))) {
            ticketCode = ticket.getRemoteTicketId();
        }
    }
    if (ticketCode == null) {
        ticketCode = "";
    }
    return ticketCode;
}

From source file:com.catexpress.dao.impl.GenericDaoImpl.java

@Override
public List<T> findBy(String field, Object value, Boolean isString) {
    List<T> list = null;//ww w  .j av  a 2s.  c om
    try {
        s = HibernateUtil.getSessionFactory().getCurrentSession();
        t = s.beginTransaction();
        Criteria criteria = s.createCriteria(clase);
        if (isString) {
            criteria.add(Restrictions.like(field, "%" + value.toString() + "%"));
        } else {
            criteria.add(Restrictions.eq(field, value));
        }
        list = criteria.list();
        t.commit();
    } catch (Exception e) {
        t.rollback();
        throw e;
    }
    return list;

}

From source file:com.cfs.controller.AuthoritiesDAO.java

public Authorities buscaAuthorities(String authority) throws Exception {
    Authorities retorno = null;//from w w  w  . j ava  2 s  .c  o m
    try {
        session = HibernateUtil.getSessionFactory().openSession();
        Criteria criteria = session.createCriteria(Authorities.class);
        criteria.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY);
        criteria.add(Restrictions.like("authority", authority));
        if (criteria.list().size() > 1) {
            System.out.println(Utilities.getInstance().getLineNumber() + "[buscaAuthorities (" + authority
                    + ")][ERRO] criteria.list().size() = " + criteria.list().size());
        }
        retorno = (Authorities) criteria.uniqueResult();
    } catch (Exception e) {
        throw new Exception(e.getMessage());
    } finally {
        session.close();
    }
    return retorno;
}

From source file:com.cimmyt.model.dao.impl.CompanyDAOImpl.java

License:Apache License

/**
 * //from   ww w  .ja  v  a2  s .c  om
 * @param criteria
 * @param companyFilter
 */
protected void buildCriteria(DetachedCriteria criteria, Company companyFilter) {
    if (companyFilter.getIdCompany() != null) {
        criteria.add(Restrictions.eq("idCompany", companyFilter.getIdCompany()));
    }

    if (companyFilter.getName() != null && companyFilter.getName().trim().length() > 0) {
        criteria.add(Restrictions.like("name", "%" + companyFilter.getName() + "%"));
    }
}

From source file:com.cimmyt.model.dao.impl.InvestigatorDAOImpl.java

License:Apache License

@Override
protected void buildCriteria(DetachedCriteria criteria, Investigator filter) {
    // TODO Auto-generated method stub
    if (filter.getInvestigatorid() != null) {
        criteria.add(Restrictions.eq("investigatorid", filter.getInvestigatorid()));
    }/* w  w w  .j  av a  2s .  c o  m*/

    if (filter.getInvest_name() != null && !filter.getInvest_name().isEmpty()) {
        criteria.add(Restrictions.like("invest_name", "%" + filter.getInvest_name() + "%"));
    }

    if (filter.isStatus())
        criteria.add(Restrictions.eq("status", filter.isStatus()));
}

From source file:com.cimmyt.model.dao.impl.LabStudyDAOImpl.java

License:Apache License

@Override
protected void buildCriteria(DetachedCriteria criteria, LabStudy filter) {
    if (filter.getLabstudyid() != null) {
        criteria.add(Restrictions.eq("labstudyid", filter.getLabstudyid()));
    }/*from w w w . j a  v  a 2 s  .c  o m*/

    if (filter.getInvestigatorid() != null) {
        criteria.add(Restrictions.eq("investigatorid", filter.getInvestigatorid()));
    }

    if (StrUtils.notEmpty(filter.getTitle())) {
        criteria.add(Restrictions.like("title", "%" + filter.getTitle() + "%"));
    }
}

From source file:com.cimmyt.model.dao.impl.LabStudyDAOImpl.java

License:Apache License

@Override
protected void buildCriteria(DetachedCriteria criteria, LabStudy filter, Integer id) {
    criteria.createAlias("studytemplateid", "tmplate", CriteriaSpecification.LEFT_JOIN)
            .createAlias("status", "st", CriteriaSpecification.LEFT_JOIN)
            .createAlias("project", "proj", CriteriaSpecification.LEFT_JOIN)
            .createAlias("investigatorid", "invest", CriteriaSpecification.LEFT_JOIN);

    if (filter != null && filter.getLabstudyid() != null) {
        criteria.add(Restrictions.eq("labstudyid", filter.getLabstudyid()));
    }//from w  w w.j  a  v  a  2 s. c  o  m

    if (idstRol != null) {
        switch (idstRol) {
        case ConstantsDNA.ROLE_RESEARCHER:
        case ConstantsDNA.ROLE_RESEARCHER_ASSISTENT:
        case ConstantsDNA.ROLE_ASSISTENT:
            if (filter != null && filter.getInvestigatorid() != null) {
                criteria.add(Restrictions.eq("investigatorid.investigatorid", filter.getInvestigatorid()));
            }
            if (id != null) {
                if (id.intValue() > 0)
                    criteria.add(Restrictions.eq("investigatorid.investigatorid", id));
            }
            break;
        }
    } else {
        if (filter != null && filter.getInvestigatorid() != null) {
            criteria.add(Restrictions.eq("investigatorid.investigatorid", filter.getInvestigatorid()));
        }
    }

    if (filter != null && StrUtils.notEmpty(filter.getTitle())) {
        criteria.add(Restrictions.like("title", "%" + filter.getTitle() + "%"));
    }

    if (filter != null && StrUtils.notEmpty(filter.getPrefix())) {
        criteria.add(Restrictions.like("prefix", filter.getPrefix(), MatchMode.ANYWHERE));
    }

    criteria.addOrder(Order.desc("labstudyid"));
}