private void createEmployeeAndSearchExpression() {
    // Create the example employee
    employee =
        (org.eclipse.persistence.testing.models.employee.domain.Employee)
            new org.eclipse.persistence.testing.models.employee.domain.EmployeePopulator()
                .basicEmployeeExample1();
    employee.setFirstName("Timugen");
    employee.setLastName("Singaera");
    employee.addResponsibility("Answer the phones.");

    // Create an expression to retreive the employee from the database
    ExpressionBuilder expressionBuilder = new ExpressionBuilder();
    Expression exp1;
    Expression exp2;
    Expression expression;

    exp1 = expressionBuilder.get("firstName").equal(employee.getFirstName());
    exp2 = expressionBuilder.get("lastName").equal(employee.getLastName());

    searchExpression = exp1.or(exp2);
  }
예제 #2
0
  protected Expression processPropertyNe(
      Attribute<?, ?> attr, Expression builder, List<Parameter> parameters) {

    ConditionQueryParameter p;
    // convenient expression, only used by simple case
    Expression exp = null;

    p = new ConditionQueryParameter(this, getQuery().getPrefix() + parameters.size());
    parameters.add(p);
    boolean isString = JpaMetamodelHelper.isString(attr);
    if (attr.isCollection()) {
      if (isAllColllectionMode()) {
        ReportQuery subQuery = formReportQueryForDirectCollection(attr, builder);
        if (isString && isIgnoreCase()) {
          subQuery.setSelectionCriteria(
              builder.anyOf(getProp()).equalsIgnoreCase(builder.getParameter(p.getParamName())));
        } else {
          subQuery.setSelectionCriteria(
              builder.anyOf(getProp()).equal(builder.getParameter(p.getParamName())));
        }

        exp = builder.notExists(subQuery);
      } else if (isNoneColllectionMode()) {
        ReportQuery subQuery = formReportQueryForDirectCollection(attr, builder);
        if (isString && isIgnoreCase()) {
          subQuery.setSelectionCriteria(
              builder
                  .anyOf(getProp())
                  .toUpperCase()
                  .notEqual(builder.getParameter(p.getParamName())));
        } else {
          subQuery.setSelectionCriteria(
              builder.anyOf(getProp()).notEqual(builder.getParameter(p.getParamName())));
        }
        exp = builder.notExists(subQuery);
      } else {
        if (isString && isIgnoreCase()) {
          exp =
              builder
                  .anyOf(getProp())
                  .toUpperCase()
                  .notEqual(builder.getParameter(p.getParamName()));
        } else {
          exp = builder.anyOf(getProp()).notEqual(builder.getParameter(p.getParamName()));
        }
      }
    } else {
      if (JpaMetamodelHelper.isRelation(attr)) {
        if (JpaMetamodelHelper.isRelationOwner(attr)) {
          Expression exp1 = builder.get(getProp()).notEqual(builder.getParameter(p.getParamName()));
          // null is not considered as equal
          Expression exp2 = builder.get(getProp()).isNull();
          exp = exp1.or(exp2);
        } else {
          exp = builder.get(getProp()).notEqual(builder.getParameter(p.getParamName()));
        }

      } else {
        if (isString && isIgnoreCase()) {
          exp =
              builder.get(getProp()).toUpperCase().notEqual(builder.getParameter(p.getParamName()));
        } else {
          exp = builder.get(getProp()).notEqual(builder.getParameter(p.getParamName()));
        }
      }
    }

    return exp;
  }