Example usage for com.liferay.portal.kernel.dao.orm RestrictionsFactoryUtil sqlRestriction

List of usage examples for com.liferay.portal.kernel.dao.orm RestrictionsFactoryUtil sqlRestriction

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.dao.orm RestrictionsFactoryUtil sqlRestriction.

Prototype

public static Criterion sqlRestriction(String sql) 

Source Link

Usage

From source file:at.meduni.liferay.portlet.rdconnect.service.impl.MasterCandidateLocalServiceImpl.java

License:Open Source License

public List<MasterCandidate> getFilterdCandidates(String searchstring, String country, String type,
        String state, String source) throws SystemException {
    if (country.equals("all")) {
        country = "";
    }/*from w  ww .j a  v  a  2  s.c  o  m*/
    if (type.equals("all")) {
        type = "";
    } else {
        if (type.equals("Registry"))
            type = "Registr";
    }
    if (state.equals("all")) {
        state = "";
    }
    if (source.equals("all")) {
        source = "";
    }

    List<MasterCandidate> mastercandidate = null;

    try {
        // Dynamic Query for search
        DynamicQuery dynamicQuery = DynamicQueryFactoryUtil.forClass(MasterCandidateImpl.class);

        Criterion criterion = null;
        Criterion criterion_stringsearch_grouped = null;

        String[] searchstringarray = searchstring.split(" ");

        for (String searchstringsplit : searchstringarray) {
            Criterion criterion_stringsearch = RestrictionsFactoryUtil.ilike("diseasesfreetext",
                    StringPool.PERCENT + searchstringsplit + StringPool.PERCENT);
            criterion_stringsearch = RestrictionsFactoryUtil.or(criterion_stringsearch, RestrictionsFactoryUtil
                    .ilike("diseasescodes", StringPool.PERCENT + searchstringsplit + StringPool.PERCENT));
            criterion_stringsearch = RestrictionsFactoryUtil.or(criterion_stringsearch, RestrictionsFactoryUtil
                    .ilike("name", StringPool.PERCENT + searchstringsplit + StringPool.PERCENT));
            criterion_stringsearch = RestrictionsFactoryUtil.or(criterion_stringsearch, RestrictionsFactoryUtil
                    .ilike("candidatesubtype", StringPool.PERCENT + searchstringsplit + StringPool.PERCENT));
            criterion_stringsearch = RestrictionsFactoryUtil.or(criterion_stringsearch, RestrictionsFactoryUtil
                    .ilike("country", StringPool.PERCENT + searchstringsplit + StringPool.PERCENT));
            criterion_stringsearch = RestrictionsFactoryUtil.or(criterion_stringsearch, RestrictionsFactoryUtil
                    .ilike("candidatetype", StringPool.PERCENT + searchstringsplit + StringPool.PERCENT));
            criterion_stringsearch = RestrictionsFactoryUtil.or(criterion_stringsearch, RestrictionsFactoryUtil
                    .ilike("url", StringPool.PERCENT + searchstringsplit + StringPool.PERCENT));
            criterion_stringsearch = RestrictionsFactoryUtil.or(criterion_stringsearch, RestrictionsFactoryUtil
                    .ilike("contactperson", StringPool.PERCENT + searchstringsplit + StringPool.PERCENT));
            criterion_stringsearch = RestrictionsFactoryUtil.or(criterion_stringsearch, RestrictionsFactoryUtil
                    .ilike("comment", StringPool.PERCENT + searchstringsplit + StringPool.PERCENT));
            criterion_stringsearch = RestrictionsFactoryUtil.or(criterion_stringsearch, RestrictionsFactoryUtil
                    .ilike("address", StringPool.PERCENT + searchstringsplit + StringPool.PERCENT));
            criterion_stringsearch = RestrictionsFactoryUtil.or(criterion_stringsearch, RestrictionsFactoryUtil
                    .ilike("mail", StringPool.PERCENT + searchstringsplit + StringPool.PERCENT));
            criterion_stringsearch = RestrictionsFactoryUtil.or(criterion_stringsearch, RestrictionsFactoryUtil
                    .ilike("head", StringPool.PERCENT + searchstringsplit + StringPool.PERCENT));

            try {
                long searchlong = Long.valueOf(searchstringsplit);
                criterion_stringsearch = RestrictionsFactoryUtil.or(criterion_stringsearch,
                        RestrictionsFactoryUtil.eq("masterCandidateId", searchlong));
                criterion_stringsearch = RestrictionsFactoryUtil.or(criterion_stringsearch,
                        RestrictionsFactoryUtil.eq("organisationid", searchlong));
            } catch (Exception e) {

            }
            if (criterion_stringsearch_grouped == null) {
                criterion_stringsearch_grouped = criterion_stringsearch;
            } else {
                criterion_stringsearch_grouped = RestrictionsFactoryUtil.or(criterion_stringsearch_grouped,
                        criterion_stringsearch);
            }
        }

        criterion = RestrictionsFactoryUtil.ilike("country", StringPool.PERCENT + country + StringPool.PERCENT);
        criterion = RestrictionsFactoryUtil.and(criterion,
                RestrictionsFactoryUtil.ilike("candidatetype", StringPool.PERCENT + type + StringPool.PERCENT));
        criterion = RestrictionsFactoryUtil.and(criterion, criterion_stringsearch_grouped);
        criterion = RestrictionsFactoryUtil.and(criterion,
                RestrictionsFactoryUtil.ilike("state", StringPool.PERCENT + state + StringPool.PERCENT));
        criterion = RestrictionsFactoryUtil.and(criterion,
                RestrictionsFactoryUtil.sqlRestriction("state_ NOT ILIKE 'x'"));
        criterion = RestrictionsFactoryUtil.and(criterion,
                RestrictionsFactoryUtil.sqlRestriction("state_ NOT ILIKE '0'"));
        criterion = RestrictionsFactoryUtil.and(criterion,
                RestrictionsFactoryUtil.ilike("source", StringPool.PERCENT + source + StringPool.PERCENT));

        dynamicQuery.add(criterion);

        Order countryOrder = OrderFactoryUtil.asc("country");
        Order joinIdOrder = OrderFactoryUtil.asc("joinId");
        Order nameOrder = OrderFactoryUtil.asc("name");

        dynamicQuery.addOrder(countryOrder);
        dynamicQuery.addOrder(joinIdOrder);
        dynamicQuery.addOrder(nameOrder);

        mastercandidate = MasterCandidateLocalServiceUtil.dynamicQuery(dynamicQuery);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return mastercandidate;
}