You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ar...@apache.org on 2018/04/18 11:27:48 UTC
olingo-odata2 git commit: [OLINGO-1258]JPA Filter for null is
throwing exception
Repository: olingo-odata2
Updated Branches:
refs/heads/master 2db7d0a03 -> 48b8d3ee3
[OLINGO-1258]JPA Filter for null is throwing exception
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata2/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata2/commit/48b8d3ee
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata2/tree/48b8d3ee
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata2/diff/48b8d3ee
Branch: refs/heads/master
Commit: 48b8d3ee372ede49a5a23fe9a090f2856e730677
Parents: 2db7d0a
Author: Archana Rai <ar...@sap.com>
Authored: Wed Apr 18 16:57:38 2018 +0530
Committer: Archana Rai <ar...@sap.com>
Committed: Wed Apr 18 16:57:38 2018 +0530
----------------------------------------------------------------------
.../odata2/jpa/processor/core/ODataExpressionParser.java | 2 +-
.../processor/core/ODataFilterExpressionParserTest.java | 10 ++++++++++
2 files changed, 11 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/48b8d3ee/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/ODataExpressionParser.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/ODataExpressionParser.java b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/ODataExpressionParser.java
index 7d845e9..3ccb290 100644
--- a/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/ODataExpressionParser.java
+++ b/odata2-jpa-processor/jpa-core/src/main/java/org/apache/olingo/odata2/jpa/processor/core/ODataExpressionParser.java
@@ -156,7 +156,7 @@ public class ODataExpressionParser {
if(EdmSimpleTypeKind.String.getEdmSimpleTypeInstance().isCompatible(type)){
return JPQLStatement.DELIMITER.PARENTHESIS_LEFT + left + JPQLStatement.DELIMITER.SPACE
+ (!"null".equals(right) ? JPQLStatement.Operator.LIKE : "IS") + JPQLStatement.DELIMITER.SPACE + right
- + " ESCAPE '\\'" + JPQLStatement.DELIMITER.PARENTHESIS_RIGHT;
+ + ("null".equals(right) ? "" : " ESCAPE '\\'") + JPQLStatement.DELIMITER.PARENTHESIS_RIGHT;
}
return JPQLStatement.DELIMITER.PARENTHESIS_LEFT + left + JPQLStatement.DELIMITER.SPACE
+ (!"null".equals(right) ? JPQLStatement.Operator.EQ : "IS") + JPQLStatement.DELIMITER.SPACE + right
http://git-wip-us.apache.org/repos/asf/olingo-odata2/blob/48b8d3ee/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/ODataFilterExpressionParserTest.java
----------------------------------------------------------------------
diff --git a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/ODataFilterExpressionParserTest.java b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/ODataFilterExpressionParserTest.java
index bd15849..f964d7d 100644
--- a/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/ODataFilterExpressionParserTest.java
+++ b/odata2-jpa-processor/jpa-core/src/test/java/org/apache/olingo/odata2/jpa/processor/core/ODataFilterExpressionParserTest.java
@@ -130,6 +130,8 @@ public class ODataFilterExpressionParserTest {
private static final String[] EXPRESSION_STARTSWITHEQTRUE_ANDTRUE = {"startswith(text,'abc') eq true and true",
"((E1.text LIKE CONCAT('abc','%') ESCAPE '\\' ) AND true)"};
+
+ private static final String[] EXPRESSION_NULL_EQ = { "id eq null", "(E1.id IS null)" };
private static Edm edm = null;
@@ -248,6 +250,14 @@ public class ODataFilterExpressionParserTest {
assertEquals(EXPRESSION_EQ[OUTPUT], whereExpression);
}
+
+ @Test
+ public void testNullEqRelation() {
+ String whereExpression = parseWhereExpression(EXPRESSION_NULL_EQ[INPUT], false);
+ whereExpression = replacePositionalParameters(whereExpression);
+ assertEquals(EXPRESSION_NULL_EQ[OUTPUT], whereExpression);
+
+ }
@Test
public void testSimpleNeRelation() {