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 <[email protected]> Authored: Wed Apr 18 16:57:38 2018 +0530 Committer: Archana Rai <[email protected]> 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() {
