Example usage for org.hibernate.criterion Restrictions sqlRestriction

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

Introduction

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

Prototype

public static Criterion sqlRestriction(String sql, Object value, Type type) 

Source Link

Document

Create a restriction expressed in SQL with one JDBC parameter.

Usage

From source file:com.quix.aia.cn.imo.mapper.AnnouncementMaintenance.java

License:Open Source License

/**
 * <p>Method is used to get all announcement created.</p>
* @param req /* w  ww  .  jav a 2s  .c o  m*/
 * @return  ArrayList of announcement
 */
public ArrayList getAllAnnouncements(HttpServletRequest req) {
    Session session = null;
    ArrayList announcementList = new ArrayList();
    User userObj = (User) req.getSession().getAttribute("currUserObj");

    try {

        int month = Calendar.getInstance().get(Calendar.MONTH) + 1;
        int year = Calendar.getInstance().get(Calendar.YEAR);
        session = HibernateFactory.openSession();

        Criteria crit = session.createCriteria(Announcement.class);
        crit.add(Restrictions.eq("status", true));
        crit.add(Restrictions.sqlRestriction("MONTH(PUBLISHED_DATE)=?", month, Hibernate.INTEGER));
        crit.add(Restrictions.sqlRestriction("YEAR(PUBLISHED_DATE)=?", year, Hibernate.INTEGER));

        if (userObj.isBuLevel() && userObj.getBuCode() != 0) {
            crit.add(Restrictions.eq("buCode", userObj.getBuCode()));
        }
        if (userObj.isDistrictLevel()) {
            crit.add(Restrictions.eq("district", userObj.getDistrict()));
        }
        if (userObj.isBranchLevel()) {
            crit.add(Restrictions.eq("branchCode", userObj.getBranchCode()));
        }
        if (userObj.isCityLevel()) {
            crit.add(Restrictions.eq("cityCode", userObj.getCityCode()));
        }
        if (userObj.isSscLevel()) {
            crit.add(Restrictions.eq("sscCode", userObj.getSscCode()));
        }
        if (userObj.isOfficeLevel()) {
            crit.add(Restrictions.eq("officeCode", userObj.getOfficeCode()));
        }

        announcementList = (ArrayList) crit.list();

    } catch (Exception e) {
        log.log(Level.SEVERE, e.getMessage());
        LogsMaintenance logsMain = new LogsMaintenance();
        e.printStackTrace();
        StringWriter errors = new StringWriter();
        e.printStackTrace(new PrintWriter(errors));
        logsMain.insertLogs("AnnouncementMaintenance", Level.SEVERE + "", errors.toString());
    } finally {
        try {
            HibernateFactory.close(session);

        } catch (Exception e) {
            log.log(Level.SEVERE, e.getMessage());
            e.printStackTrace();
        }
    }

    return announcementList;
}

From source file:com.quix.aia.cn.imo.mapper.EgreetingMaintenance.java

License:Open Source License

/**
 * <p>//from w  w  w  .java  2 s .  co m
 * This is sub method for particular search listing method based of search criteria.
 * </p>
 * 
 * @param  requestParameters Servlet Request Parameter
 * @return ArrayList
 */
public ArrayList getSearcheGreeting(HttpServletRequest req) {
    log.log(Level.INFO, "EgreetingMaintenance ---> getSearcheGreeting ");
    ArrayList arrPresenter = new ArrayList();

    String E_GreetingName = req.getParameter(NAME_PARAM);
    String category = req.getParameter("festive_category");
    //String month = req.getParameter(MONTH_PARAM);
    String year = req.getParameter(YEAR_PARAM);

    Session session = HibernateFactory.openSession();
    LogsMaintenance logsMain = new LogsMaintenance();
    try {
        Criteria crit = session.createCriteria(E_Greeting.class);
        if (E_GreetingName != null && E_GreetingName.length() > 0)
            crit.add(Restrictions.like("EGreetingName", E_GreetingName, MatchMode.ANYWHERE));
        if (category != null && Integer.parseInt(category) != 0)
            crit.add(Restrictions.eq("festive_category", Integer.parseInt(category)));
        /*if (month != null)
           crit.add(Restrictions.sqlRestriction("MONTH(CREATION_DATE)=?",
          Integer.parseInt(month), Hibernate.INTEGER));*/
        if (year != null)
            crit.add(Restrictions.sqlRestriction("YEAR(CREATION_DATE)=?", Integer.parseInt(year),
                    Hibernate.INTEGER));
        crit.add(Restrictions.eq("status", true));

        List l = crit.list();
        Iterator it = l.iterator();

        while (it.hasNext()) {
            E_Greeting E_GreetingClassObj = (E_Greeting) it.next();
            arrPresenter.add(E_GreetingClassObj);

        }
    } catch (Exception e) {
        log.log(Level.SEVERE, "EgreetingMaintenance ---> getSearcheGreeting ", e.getMessage());
        e.printStackTrace();
        StringWriter errors = new StringWriter();
        e.printStackTrace(new PrintWriter(errors));
        logsMain.insertLogs("EgreetingMaintenance", Level.SEVERE + "", errors.toString());
    }
    try {
        HibernateFactory.close(session);
    } catch (Exception e) {
        log.log(Level.SEVERE, "EgreetingMaintenance ---> getSearcheGreeting ", e.getMessage());
        e.printStackTrace();
        StringWriter errors = new StringWriter();
        e.printStackTrace(new PrintWriter(errors));
        logsMain.insertLogs("EgreetingMaintenance", Level.SEVERE + "", errors.toString());
    }
    return arrPresenter;
}

From source file:com.quix.aia.cn.imo.mapper.EgreetingMaintenance.java

License:Open Source License

/**
 * <p>//  w  w  w. j  av  a 2  s.  co  m
 * This is sub method for particular search listing method based of search criteria.
 * </p>
 * 
 * @param  requestParameters Servlet Request Parameter
 * @return ArrayList
 */
public ArrayList geteGreeting(HttpServletRequest req) {
    log.log(Level.INFO, "EgreetingMaintenance ---> geteGreeting ");
    ArrayList arrPresenter = new ArrayList();

    Session session = HibernateFactory.openSession();
    int month = Calendar.getInstance().get(Calendar.MONTH) + 1;
    int year = Calendar.getInstance().get(Calendar.YEAR);
    LogsMaintenance logsMain = new LogsMaintenance();
    try {
        Criteria crit = session.createCriteria(E_Greeting.class);
        crit.add(Restrictions.sqlRestriction("MONTH(CREATION_DATE)=?", month, Hibernate.INTEGER));
        crit.add(Restrictions.sqlRestriction("YEAR(CREATION_DATE)=?", year, Hibernate.INTEGER));
        crit.add(Restrictions.eq("status", true));

        List l = crit.list();
        Iterator it = l.iterator();

        while (it.hasNext()) {
            E_Greeting E_GreetingClassObj = (E_Greeting) it.next();
            arrPresenter.add(E_GreetingClassObj);

        }
    } catch (Exception e) {
        log.log(Level.SEVERE, "EgreetingMaintenance ---> getSearcheGreeting ", e.getMessage());
        e.printStackTrace();
        StringWriter errors = new StringWriter();
        e.printStackTrace(new PrintWriter(errors));
        logsMain.insertLogs("EgreetingMaintenance", Level.SEVERE + "", errors.toString());
    }
    try {
        HibernateFactory.close(session);
    } catch (Exception e) {
        log.log(Level.SEVERE, "EgreetingMaintenance ---> getSearcheGreeting ", e.getMessage());
        e.printStackTrace();
        StringWriter errors = new StringWriter();
        e.printStackTrace(new PrintWriter(errors));
        logsMain.insertLogs("EgreetingMaintenance", Level.SEVERE + "", errors.toString());
    }
    return arrPresenter;
}

From source file:com.quix.aia.cn.imo.mapper.EopMaintenance.java

License:Open Source License

/**
 *<p>Method is used to get searched Schedule details.</p>
 * @param req  Servlet Request Parameter
 * @return  ArrayList of Schedule/*from  w  w w .  j  a  va 2 s.co  m*/
 */
public ArrayList getSearchedEvents(HttpServletRequest req) {
    Session session = null;
    ArrayList eventList = new ArrayList();
    String eventName = req.getParameter(EVENT_NAME_PARAM);
    String eventType = req.getParameter(EVENT_TYPE_PARAM);
    String month = req.getParameter(MONTH_PARAM);
    String year = req.getParameter(YEAR_PARAM);
    String organiser = req.getParameter(ORGANISER_PARAM);
    String bu = req.getParameter(BU_PARAM);
    String district = req.getParameter(DISTRICT_PARAM);
    String branchCode = req.getParameter("branch");
    String officeCode = req.getParameter("office");
    String city = req.getParameter(CITY_PARAM);
    String ssc = req.getParameter(SSC_PARAM);
    String agentTeam = req.getParameter(AGENT_TEAM_PARAM);
    try {
        session = HibernateFactory.openSession();

        Criteria crit = session.createCriteria(Event.class);
        if (eventName != null && eventName.length() > 0)
            crit.add(Restrictions.like("eventName", eventName, MatchMode.ANYWHERE));
        if (eventType != null && eventType.length() > 0)
            crit.add(Restrictions.eq("eventType", eventType));
        if (organiser != null && Integer.parseInt(organiser) != 0)
            crit.add(Restrictions.eq("organizer", Integer.parseInt(organiser)));
        if (month != null)
            crit.add(Restrictions.sqlRestriction("MONTH(EVENT_DATE)=?", Integer.parseInt(month),
                    Hibernate.INTEGER));
        if (year != null)
            crit.add(Restrictions.sqlRestriction("YEAR(EVENT_DATE)=?", Integer.parseInt(year),
                    Hibernate.INTEGER));
        if (bu != null && Integer.parseInt(bu) != 0)
            crit.add(Restrictions.eq("buCode", Integer.parseInt(bu)));
        if (district != null && Integer.parseInt(district) != 0)
            crit.add(Restrictions.eq("district", Integer.parseInt(district)));
        if (branchCode != null && Integer.parseInt(branchCode) != 0)
            crit.add(Restrictions.eq("branchCode", Integer.parseInt(branchCode)));

        if (officeCode != null && !officeCode.equals("0"))
            crit.add(Restrictions.eq("officeCode", officeCode));

        if (city != null && !city.equals("0"))
            crit.add(Restrictions.eq("cityCode", city));
        if (ssc != null && !ssc.equals("0"))
            crit.add(Restrictions.eq("sscCode", ssc));
        if (agentTeam != null && Integer.parseInt(agentTeam) != 0)
            crit.add(Restrictions.eq("agentTeam", agentTeam));
        crit.add(Restrictions.eq("status", true));

        eventList = (ArrayList) crit.list();

    } catch (Exception e) {
        log.log(Level.SEVERE, e.getMessage());
        LogsMaintenance logsMain = new LogsMaintenance();
        e.printStackTrace();
        StringWriter errors = new StringWriter();
        e.printStackTrace(new PrintWriter(errors));
        logsMain.insertLogs("EopMaintenance", Level.SEVERE + "", errors.toString());
    } finally {
        try {
            HibernateFactory.close(session);

        } catch (Exception e) {
            log.log(Level.SEVERE, e.getMessage());
            e.printStackTrace();
        }
    }

    return eventList;
}

From source file:com.quix.aia.cn.imo.mapper.EopMaintenance.java

License:Open Source License

/**
  *<p>Method is used to get searched Schedule details.</p>
  * @param req  Servlet Request Parameter
  * @return  ArrayList of Schedule/*from  w  ww  . ja va  2  s .com*/
  */
public ArrayList getaLLEvents(HttpServletRequest req) {
    Session session = null;
    ArrayList eventList = new ArrayList();
    int month = Calendar.getInstance().get(Calendar.MONTH) + 1;
    int year = Calendar.getInstance().get(Calendar.YEAR);
    User userObj = (User) req.getSession().getAttribute("currUserObj");
    try {
        session = HibernateFactory.openSession();

        Criteria crit = session.createCriteria(Event.class);
        crit.add(Restrictions.sqlRestriction("MONTH(EVENT_DATE)=?", month, Hibernate.INTEGER));
        crit.add(Restrictions.sqlRestriction("YEAR(EVENT_DATE)=?", year, Hibernate.INTEGER));
        crit.add(Restrictions.eq("status", true));

        if (userObj.isBuLevel() && userObj.getBuCode() != 0) {
            crit.add(Restrictions.eq("buCode", userObj.getBuCode()));
        }
        if (userObj.isDistrictLevel()) {
            crit.add(Restrictions.eq("district", userObj.getDistrict()));
        }
        if (userObj.isBranchLevel()) {
            crit.add(Restrictions.eq("branchCode", userObj.getBranchCode()));
        }
        if (userObj.isCityLevel()) {
            crit.add(Restrictions.eq("cityCode", userObj.getCityCode()));
        }
        if (userObj.isSscLevel()) {
            crit.add(Restrictions.eq("sscCode", userObj.getSscCode()));
        }
        if (userObj.isOfficeLevel()) {
            crit.add(Restrictions.eq("officeCode", userObj.getOfficeCode()));
        }

        eventList = (ArrayList) crit.list();

    } catch (Exception e) {
        log.log(Level.SEVERE, e.getMessage());
        LogsMaintenance logsMain = new LogsMaintenance();
        e.printStackTrace();
        StringWriter errors = new StringWriter();
        e.printStackTrace(new PrintWriter(errors));
        logsMain.insertLogs("EopMaintenance", Level.SEVERE + "", errors.toString());
    } finally {
        try {
            HibernateFactory.close(session);

        } catch (Exception e) {
            log.log(Level.SEVERE, e.getMessage());
            e.printStackTrace();
        }
    }

    return eventList;
}

From source file:com.quix.aia.cn.imo.mapper.HolidayMaintenance.java

License:Open Source License

/**
 * <p>This method retrieves Holidays lists based on search criteria</p>
 * @param req Servlet Request Parameter//from  w  ww.  ja  va  2  s  .  c o  m
 * @return Holidays lists 
 */
public ArrayList getParticularHoliday(HttpServletRequest req) {

    log.log(Level.INFO, "HolidayMaintenance --> getParticularHoliday ");
    Holiday holiday = null;
    ArrayList listData = new ArrayList();
    String name = req.getParameter("name");
    String year = req.getParameter("year");
    String bu = req.getParameter("bu");
    String district = req.getParameter("district");
    String city = req.getParameter("city");
    String ssc = req.getParameter("ssc");

    //To Retain Search Criteria
    Map<String, String> holMap = new HashMap<String, String>();
    if (name != null)
        holMap.put("name", name);
    if (year != null)
        holMap.put("year", year);
    if (bu != null)
        holMap.put("bu", bu);
    if (district != null)
        holMap.put("district", district);
    if (city != null)
        holMap.put("city", city);
    if (ssc != null)
        holMap.put("ssc", ssc);

    //req.getSession().setAttribute("HOL_SEARCH_OBJ", holMap);
    Session session = null;

    try {
        session = HibernateFactory.openSession();
        Criteria criteria = session.createCriteria(Holiday.class);
        if (name != null && name.length() > 0) {
            criteria.add(Restrictions.like("holidayName", name));
        }
        criteria.add(
                Restrictions.sqlRestriction("YEAR(START_DATE)=?", Integer.parseInt(year), Hibernate.INTEGER));
        criteria.add(Restrictions.eq("status", true));

        if (bu != null && Integer.parseInt(bu) != 0) {
            criteria.add(Restrictions.eq("buCode", Integer.parseInt(bu)));
        }
        if (district != null && Integer.parseInt(district) != 0) {
            criteria.add(Restrictions.eq("district", Integer.parseInt(district)));
        }
        if (city != null && Integer.parseInt(city) != 0) {
            criteria.add(Restrictions.eq("cityCode", Integer.parseInt(city)));
        }
        if (ssc != null && Integer.parseInt(ssc) != 0) {
            criteria.add(Restrictions.eq("sscCode", Integer.parseInt(ssc)));
        }
        ArrayList holidayList = (ArrayList) criteria.list();
        Iterator iterator = holidayList.iterator();
        while (iterator.hasNext()) {
            holiday = (Holiday) iterator.next();
            listData.add(holiday);
        }

    } catch (Exception e) {
        log.log(Level.SEVERE, e.getMessage());
        e.printStackTrace();
    } finally {
        try {
            HibernateFactory.close(session);
        } catch (Exception e) {

            log.log(Level.SEVERE, e.getMessage());
            e.printStackTrace();
        }
    }
    return listData;

}

From source file:com.quix.aia.cn.imo.mapper.InterviewMaintenance.java

License:Open Source License

/**
 * <p>This method retrieves Interview lists based on search criteria</p>
 * @param req Servlet Request Parameter// www.  ja  v  a 2 s. c  o m
 * @return Interview lists
 */
public ArrayList getInterview(HttpServletRequest req) {

    log.log(Level.INFO, "InterviewMaintenance --> getSearchedInterview ");
    Interview interview = null;
    ArrayList listData = new ArrayList();

    User userObj = (User) req.getSession().getAttribute("currUserObj");
    //req.getSession().setAttribute("INT_SEARCH_OBJ", intMap);
    Session session = null;
    try {
        session = HibernateFactory.openSession();
        int month = Calendar.getInstance().get(Calendar.MONTH) + 1;
        int year = Calendar.getInstance().get(Calendar.YEAR);

        Criteria criteria = session.createCriteria(Interview.class);
        criteria.add(Restrictions.sqlRestriction("MONTH(INTERVIEW_DATE)=?", month, Hibernate.INTEGER));
        criteria.add(Restrictions.sqlRestriction("YEAR(INTERVIEW_DATE)=?", year, Hibernate.INTEGER));
        criteria.add(Restrictions.eq("status", true));

        if (userObj.isBuLevel() && userObj.getBuCode() != 0) {
            criteria.add(Restrictions.eq("buCode", userObj.getBuCode()));
        }
        if (userObj.isDistrictLevel()) {
            criteria.add(Restrictions.eq("district", userObj.getDistrict()));
        }
        if (userObj.isBranchLevel()) {
            criteria.add(Restrictions.eq("branchCode", userObj.getBranchCode()));
        }
        if (userObj.isCityLevel()) {
            criteria.add(Restrictions.eq("cityCode", userObj.getCityCode()));
        }
        if (userObj.isSscLevel()) {
            criteria.add(Restrictions.eq("sscCode", userObj.getSscCode()));
        }
        if (userObj.isOfficeLevel()) {
            criteria.add(Restrictions.eq("officeCode", userObj.getOfficeCode()));
        }

        listData = (ArrayList) criteria.list();

    } catch (Exception e) {
        log.log(Level.SEVERE, e.getMessage());
        e.printStackTrace();
        LogsMaintenance logsMain = new LogsMaintenance();
        StringWriter errors = new StringWriter();
        e.printStackTrace(new PrintWriter(errors));
        logsMain.insertLogs("InterViewMaintenance", Level.SEVERE + "", errors.toString());
    } finally {
        try {
            HibernateFactory.close(session);
        } catch (Exception e) {

            log.log(Level.SEVERE, e.getMessage());
            e.printStackTrace();
        }
    }
    return listData;
}

From source file:com.quix.aia.cn.imo.mapper.PresenterMaintenance.java

License:Open Source License

/**
  * <p>This method is for search  Presenter</p>
  * @param requestParameters Servlet Request Parameter
  * @return Presenter List//from  w ww .j a  v a 2  s. c o  m
  */

public ArrayList searchPresenter(HttpServletRequest req) {
    log.log(Level.INFO, "PresenterMaintenance --> search presenter ");
    ArrayList arrPresenter = new ArrayList();

    String presenterName = req.getParameter(NAME_PARAM);
    String category = req.getParameter("presenter_category");
    String month = req.getParameter(MONTH_PARAM);
    String year = req.getParameter(YEAR_PARAM);
    String bu = req.getParameter(BU_PARAM);
    String district = req.getParameter(DISTRICT_PARAM);
    String city = req.getParameter(CITY_PARAM);
    String ssc = req.getParameter(SSC_PARAM);
    String office = req.getParameter("office");
    String branchCode = req.getParameter("branchCode");
    Session session = HibernateFactory.openSession();
    try {
        Criteria crit = session.createCriteria(Presenter.class);
        if (presenterName != null && presenterName.length() > 0)
            crit.add(Restrictions.like("presenterName", presenterName, MatchMode.ANYWHERE));
        if (category != null && Integer.parseInt(category) != 0)
            crit.add(Restrictions.eq("category", Integer.parseInt(category)));
        if (month != null)
            crit.add(Restrictions.sqlRestriction("MONTH(START_DATE)=?", Integer.parseInt(month),
                    Hibernate.INTEGER));
        if (year != null)
            crit.add(Restrictions.sqlRestriction("YEAR(START_DATE)=?", Integer.parseInt(year),
                    Hibernate.INTEGER));
        if (bu != null && Integer.parseInt(bu) != 0)
            crit.add(Restrictions.eq("buCode", Integer.parseInt(bu)));
        if (district != null && Integer.parseInt(district) != 0)
            crit.add(Restrictions.eq("distCode", Integer.parseInt(district)));

        if (branchCode != null && Integer.parseInt(branchCode) != 0)
            crit.add(Restrictions.eq("branchCode", Integer.parseInt(branchCode)));

        if (city != null && Integer.parseInt(city) != 0)
            crit.add(Restrictions.eq("cityCode", Integer.parseInt(city)));

        if (office != null && Integer.parseInt(office) != 0)
            crit.add(Restrictions.eq("officeCode", Integer.parseInt(office)));

        if (ssc != null && Integer.parseInt(ssc) != 0)
            crit.add(Restrictions.eq("sscCode", Integer.parseInt(ssc)));
        crit.add(Restrictions.eq("status", true));

        List l = crit.list();
        Iterator it = l.iterator();

        while (it.hasNext()) {
            Presenter presenter = (Presenter) it.next();
            arrPresenter.add(presenter);

        }
    } catch (Exception e) {
        log.log(Level.SEVERE, e.getMessage());
        e.printStackTrace();
    }
    try {
        HibernateFactory.close(session);
    } catch (Exception e) {
        log.log(Level.SEVERE, e.getMessage());
        e.printStackTrace();
    }
    return arrPresenter;
}

From source file:com.quix.aia.cn.imo.mapper.PresenterMaintenance.java

License:Open Source License

/**
  * <p>This method is for getting all  Presenter</p>
* @param requestParamters // w ww.  j a  v  a2 s .c o  m
  * @return Presenter List
  */
public ArrayList getAllPresenter(HttpServletRequest req) {

    log.log(Level.INFO, "PresenterMaintanence --> getAllPresenter");
    ArrayList arrActivity = new ArrayList();
    Session session = null;
    int month = Calendar.getInstance().get(Calendar.MONTH) + 1;
    int year = Calendar.getInstance().get(Calendar.YEAR);
    User userObj = (User) req.getSession().getAttribute("currUserObj");
    try {

        session = HibernateFactory.openSession();
        Criteria crit = session.createCriteria(Presenter.class);
        crit.add(Restrictions.sqlRestriction("MONTH(START_DATE)=?", month, Hibernate.INTEGER));
        crit.add(Restrictions.sqlRestriction("YEAR(START_DATE)=?", year, Hibernate.INTEGER));
        crit.add(Restrictions.eq("status", true));

        if (userObj.isBuLevel() && userObj.getBuCode() != 0) {
            crit.add(Restrictions.eq("buCode", userObj.getBuCode()));
        }
        if (userObj.isDistrictLevel()) {
            crit.add(Restrictions.eq("distCode", userObj.getDistrict()));
        }
        if (userObj.isBranchLevel()) {
            crit.add(Restrictions.eq("branchCode", userObj.getBranchCode()));
        }
        if (userObj.isCityLevel()) {
            crit.add(Restrictions.eq("cityCode", userObj.getCityCode()));
        }
        if (userObj.isSscLevel()) {
            crit.add(Restrictions.eq("sscCode", userObj.getSscCode()));
        }
        if (userObj.isOfficeLevel()) {
            crit.add(Restrictions.eq("officeCode", userObj.getOfficeCode()));
        }

        arrActivity = (ArrayList) crit.list();

    } catch (Exception e) {
        log.log(Level.SEVERE, e.getMessage());
        e.printStackTrace();
    } finally {
        HibernateFactory.close(session);
    }

    return arrActivity;
}

From source file:de.escidoc.core.aa.business.filter.UserAccountFilter.java

License:Open Source License

/**
 * Evaluate a CQL term node./* w  ww .  j  a v a  2s . c  om*/
 *
 * @param node CQL node
 * @return Hibernate query reflecting the given CQL query
 * @throws InvalidSearchQueryException thrown if the given search query could not be translated into a SQL query
 */
@Override
protected Criterion evaluate(final CQLTermNode node) throws InvalidSearchQueryException {
    Criterion result = null;
    final Object[] parts = criteriaMap.get(node.getIndex());
    final String value = node.getTerm();

    if (parts != null && !specialCriteriaNames.contains(node.getIndex())) {
        result = evaluate(node.getRelation(), (String) parts[1], value, (Integer) parts[0] == COMPARE_LIKE);
    } else {
        final String columnName = node.getIndex();

        if (columnName != null) {
            if (columnName.equals(Constants.FILTER_ACTIVE) || columnName.equals(Constants.FILTER_PATH_ACTIVE)) {
                result = Restrictions.eq("active", Boolean.parseBoolean(value));
            } else if (columnName.equals(Constants.FILTER_CREATION_DATE)
                    || columnName.equals(Constants.FILTER_PATH_CREATION_DATE)) {
                result = evaluate(node.getRelation(), "creationDate",
                        value != null && value.length() > 0 ? new Date(new DateTime(value).getMillis()) : null,
                        false);
            } else if (columnName.equals(PROP_URI_ORGANIZATIONAL_UNIT)
                    || columnName.equals(PROP_PATH_ORGANIZATIONAL_UNIT)) {
                final String ouAttributeName;
                ouAttributeName = EscidocConfiguration.getInstance()
                        .get(EscidocConfiguration.ESCIDOC_CORE_AA_OU_ATTRIBUTE_NAME);
                if (ouAttributeName == null || ouAttributeName.length() == 0) {
                    throw new InvalidSearchQueryException("ou-attribute-name not found in configuration");
                }
                result = Restrictions.sqlRestriction("this_.id in (" + "select ua.id from aa.user_account ua, "
                        + "aa.user_attribute atts " + "where ua.id = atts.user_id " + "and atts.name = '"
                        + ouAttributeName + "' and atts.value = ?)", value, Hibernate.STRING);
            } else {
                throw new InvalidSearchQueryException("unknown filter criteria: " + columnName);
            }
        }
    }
    return result;
}