Do you guys use the FindServices? It's seems there is the problem in
createCondition method when using the "IN" operator, the
EntityCondition.makeCondition need a collection as the value when using IN
operatot, but it's always pass the String value to this method, so It's
throw the exception "Message: Error in Service [executeFind]: Error running
Find on the [PartyAndUserLoginAndPerson] entity: SQL Exception while
executing the following:SELECT PTY.PARTY_ID, PTY.PARTY_TYPE_ID,
PTY.CREATED_DATE, ULN.USER_LOGIN_ID, ULN.CURRENT_PASSWORD,
ULN.PASSWORD_HINT, ULN.ENABLED, ULN.DISABLED_DATE_TIME,
ULN.SUCCESSIVE_FAILED_LOGINS, PER.LAST_NAME, PER.FIRST_NAME FROM
(OFBIZ.PARTY PTY INNER JOIN OFBIZ.USER_LOGIN ULN ON PTY.PARTY_ID =
ULN.PARTY_ID) INNER JOIN OFBIZ.PERSON PER ON PTY.PARTY_ID = PER.PARTY_ID
WHERE (PTY.PARTY_ID IN ?) (Syntax error: Encountered "?" at line 1, column
384.)"

I have changed the code like this:
 if (ignoreCase != null && ignoreCase.equals("Y")) {
             if(opString!= null && opString.equals("in")){
              cond =
EntityCondition.makeCondition(EntityFunction.UPPER_FIELD(fieldName),
(EntityComparisonOperator) fieldOp,toList(fieldValue.toUpperCase()));
             }
             else
              cond =
EntityCondition.makeCondition(EntityFunction.UPPER_FIELD(fieldName),
(EntityComparisonOperator) fieldOp,
EntityFunction.UPPER(fieldValue.toUpperCase()));
            } else {
             if(opString!= null && opString.equals("in")){
              cond = EntityCondition.makeCondition(fieldName,
(EntityComparisonOperator) fieldOp,toList(fieldValue));
             }
             else
              cond = EntityCondition.makeCondition(fieldName,
(EntityComparisonOperator) fieldOp, fieldValue);
            }
.....

Is the bug or I miss something??

Thank you!

Reply via email to