diff --git a/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlParser.java b/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlParser.java index a653a074e..0d8552307 100644 --- a/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlParser.java +++ b/src/main/java/io/ebeaninternal/server/rawsql/DRawSqlParser.java @@ -1,7 +1,7 @@ package io.ebeaninternal.server.rawsql; -import io.ebeaninternal.server.rawsql.SpiRawSql.Sql; import io.ebeaninternal.server.querydefn.SimpleTextParser; +import io.ebeaninternal.server.rawsql.SpiRawSql.Sql; /** * Parses sql-select queries to try and determine the location where WHERE and @@ -55,11 +55,7 @@ class DRawSqlParser { private Sql parse() { - if (!hasPlaceHolders()) { - // parse the sql for the keywords... - // select, from, where, having, group by, order by - parseSqlFindKeywords(true); - } + parseSqlFindKeywords(true); whereExprPos = findWhereExprPosition(); havingExprPos = findHavingExprPosition(); diff --git a/src/test/java/io/ebeaninternal/server/rawsql/TestRawSqlParsing.java b/src/test/java/io/ebeaninternal/server/rawsql/TestRawSqlParsing.java index 570509646..e868cb9bd 100644 --- a/src/test/java/io/ebeaninternal/server/rawsql/TestRawSqlParsing.java +++ b/src/test/java/io/ebeaninternal/server/rawsql/TestRawSqlParsing.java @@ -57,4 +57,19 @@ public class TestRawSqlParsing extends BaseTestCase { assertThat(list).isNotEmpty(); } + + @Test + public void testWhere() { + + ResetBasicData.reset(); + + RawSql sql = RawSqlBuilder.parse("SELECT id, name FROM o_customer ${where}").create(); + + List customers = Ebean.createQuery(Customer.class) + .setRawSql(sql) + .where().gt("id", 1) + .findList(); + + assertThat(customers).isNotEmpty(); + } }