예제 #1
0
  public List<BlacklistDTO> filterByIpAddress(Integer entityId, String ipAddress, Integer ccfId) {

    // don't try and filter if there's no IP address to lookup
    if (StringUtils.isBlank(ipAddress)) {
      return Collections.emptyList();
    }

    Criteria criteria =
        getSession()
            .createCriteria(BlacklistDTO.class)
            .createAlias("company", "c")
            .add(Restrictions.eq("c.id", entityId))
            .add(Restrictions.eq("type", BlacklistDTO.TYPE_IP_ADDRESS));

    Criteria secondCriteria =
        criteria
            .createCriteria("metaFieldValue", "fieldValue", CriteriaSpecification.LEFT_JOIN)
            .add(Restrictions.eq("fieldValue.field.id", ccfId))
            .add(
                Restrictions.sqlRestriction(
                    "{alias}.string_value = ?", ipAddress, Hibernate.STRING));

    return secondCriteria.list();
  }