Beispiel #1
0
  /**
   * @see org.meveo.service.validation.ValidationServiceLocal#validateUniqueField(java.lang.String,
   *     java.lang.String, java.lang.String, java.lang.Object)
   */
  public boolean validateUniqueField(
      String className, String fieldName, Object id, Object value, Provider provider) {

    // Proxy classes contain a name in "..._$$_javassist.. format" If a proxy class object claname
    // was passed, string the ending "_$$_javassist.."to obtain real class name
    int pos = className.indexOf("_$$_java");
    if (pos > 0) {
      className = className.substring(0, pos);
    }

    StringBuilder queryStringBuilder =
        new StringBuilder("select count(*) from ")
            .append(className)
            .append(" where ")
            .append(fieldName)
            .append(" = '")
            .append(value)
            .append("' and provider.id = ")
            .append(provider.getId());
    if (id != null) {
      queryStringBuilder.append(" and id != ").append(id);
    }
    Query query = em.createQuery(queryStringBuilder.toString());
    long count = (Long) query.getSingleResult();
    return count == 0L;
  }