public List<CustomField> getCustomFields(Enterprise enterprise) {
    String query =
        "SELECT field FROM CustomField field WHERE field.enterprise = :enterprise order by field.position asc";

    enterprise =
        enterprise.getParentEnterprise() != null ? enterprise.getParentEnterprise() : enterprise;

    return (List<CustomField>)
        entityManager.createQuery(query).setParameter("enterprise", enterprise).getResultList();
  }
  public List<CustomField> getCustomCriteriaSearchFields(int limit) {

    User user = getSessionUser();

    String query =
        "SELECT field FROM CustomField field "
            + "WHERE field.criteriaSearch = true "
            + "AND field.enterprise = :enterprise "
            + "AND field.position < :limit order by field.position asc";

    Enterprise enterprise = user.getEnterprise();
    enterprise =
        enterprise.getParentEnterprise() != null ? enterprise.getParentEnterprise() : enterprise;

    return (List<CustomField>)
        entityManager
            .createQuery(query)
            .setParameter("enterprise", enterprise)
            .setParameter("limit", limit)
            .getResultList();
  }