details: https://code.openbravo.com/erp/devel/pi/rev/e4e3a55d6378
changeset: 15461:e4e3a55d6378
user: Asier Lostalé <asier.lostale <at> openbravo.com>
date: Mon Feb 13 16:00:40 2012 +0100
summary: fixed bug 19621: fixed null and not null filters on FK fields
diffstat:
modules/org.openbravo.service.json/src/org/openbravo/service/json/AdvancedQueryBuilder.java
| 19 ++++++---
1 files changed, 12 insertions(+), 7 deletions(-)
diffs (50 lines):
diff -r 3082e66a5d16 -r e4e3a55d6378
modules/org.openbravo.service.json/src/org/openbravo/service/json/AdvancedQueryBuilder.java
---
a/modules/org.openbravo.service.json/src/org/openbravo/service/json/AdvancedQueryBuilder.java
Mon Feb 13 12:02:18 2012 +0100
+++
b/modules/org.openbravo.service.json/src/org/openbravo/service/json/AdvancedQueryBuilder.java
Mon Feb 13 16:00:40 2012 +0100
@@ -11,7 +11,7 @@
* under the License.
* The Original Code is Openbravo ERP.
* The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2009-2011 Openbravo SLU
+ * All portions are Copyright (C) 2009-2012 Openbravo SLU
* All Rights Reserved.
* Contributor(s): ______________________________________.
************************************************************************
@@ -291,11 +291,7 @@
String fieldName = jsonCriteria.getString("fieldName");
Object value = jsonCriteria.has("value") ? jsonCriteria.get("value") :
null;
- if (operator.equals(OPERATOR_ISNULL)) {
- operator = OPERATOR_EQUALS;
- value = null;
- } else if (operator.equals(OPERATOR_NOTNULL)) {
- operator = OPERATOR_NOTEQUAL;
+ if (operator.equals(OPERATOR_ISNULL) || operator.equals(OPERATOR_NOTNULL))
{
value = null;
}
@@ -455,7 +451,12 @@
// Within the if the leftWherePart is used because it contains the join
aliases
if (useFieldName.equals(JsonConstants.IDENTIFIER)
|| useFieldName.endsWith("." + JsonConstants.IDENTIFIER)) {
- clause = computeLeftWhereClauseForIdentifier(useProperty, useFieldName,
clause);
+ if (useFieldName.endsWith("." + JsonConstants.IDENTIFIER)
+ && (operator.equals(OPERATOR_ISNULL) ||
operator.equals(OPERATOR_NOTNULL))) {
+ clause = getMainAlias() + "." + useFieldName.replace("." +
JsonConstants.IDENTIFIER, "");
+ } else {
+ clause = computeLeftWhereClauseForIdentifier(useProperty,
useFieldName, clause);
+ }
} else if (!useProperty.isPrimitive()) {
clause = clause + ".id";
}
@@ -818,6 +819,10 @@
return "like";
} else if (operator.equals(OPERATOR_ENDSWITHFIELD)) {
return "like";
+ } else if (operator.equals(OPERATOR_ISNULL)) {
+ return "is";
+ } else if (operator.equals(OPERATOR_NOTNULL)) {
+ return "is not";
}
// todo throw exception
return null;
------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits