diff --git a/src/main/java/com/avaje/ebeaninternal/server/grammer/EqlAdapterHelper.java b/src/main/java/com/avaje/ebeaninternal/server/grammer/EqlAdapterHelper.java index 6e3754b93..ff2064711 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/grammer/EqlAdapterHelper.java +++ b/src/main/java/com/avaje/ebeaninternal/server/grammer/EqlAdapterHelper.java @@ -46,6 +46,9 @@ class EqlAdapterHelper { case EQ: peekExprList().eq(path, bind(value)); break; + case IEQ: + peekExprList().ieq(path, bindString(value)); + break; case NE: peekExprList().ne(path, bind(value)); break; diff --git a/src/main/java/com/avaje/ebeaninternal/server/grammer/EqlOperator.java b/src/main/java/com/avaje/ebeaninternal/server/grammer/EqlOperator.java index d5fb64b20..2fc5c3a52 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/grammer/EqlOperator.java +++ b/src/main/java/com/avaje/ebeaninternal/server/grammer/EqlOperator.java @@ -3,6 +3,7 @@ package com.avaje.ebeaninternal.server.grammer; enum EqlOperator { EQ, + IEQ, NE, LT, LTE, diff --git a/src/main/java/com/avaje/ebeaninternal/server/grammer/OperatorMapping.java b/src/main/java/com/avaje/ebeaninternal/server/grammer/OperatorMapping.java index 355fa7b58..43ac91093 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/grammer/OperatorMapping.java +++ b/src/main/java/com/avaje/ebeaninternal/server/grammer/OperatorMapping.java @@ -10,6 +10,7 @@ class OperatorMapping { public OperatorMapping() { map.put("eq", EqlOperator.EQ); map.put("=", EqlOperator.EQ); + map.put("ieq", EqlOperator.IEQ); map.put("ne", EqlOperator.NE); map.put("<>", EqlOperator.NE); diff --git a/src/test/java/com/avaje/ebeaninternal/server/grammer/EqlParserTest.java b/src/test/java/com/avaje/ebeaninternal/server/grammer/EqlParserTest.java index 0652f9b59..c2063a858 100644 --- a/src/test/java/com/avaje/ebeaninternal/server/grammer/EqlParserTest.java +++ b/src/test/java/com/avaje/ebeaninternal/server/grammer/EqlParserTest.java @@ -18,6 +18,15 @@ public class EqlParserTest { assertThat(query.getGeneratedSql()).contains("where t0.name = ?"); } + @Test + public void where_ieq() throws Exception { + + Query query = parse("where name ieq 'Rob'"); + query.findList(); + + assertThat(query.getGeneratedSql()).contains("where lower(t0.name) =?"); + } + @Test public void where_eq2() throws Exception {