Skip to content

Commit

Permalink
[playframework#664] by...Like query fails on mem or fs database
Browse files Browse the repository at this point in the history
  • Loading branch information
pepite committed Oct 18, 2011
1 parent e066b7f commit 5b41faa
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 2 deletions.
18 changes: 16 additions & 2 deletions framework/src/play/db/jpa/JPQL.java
Expand Up @@ -243,10 +243,19 @@ public String findByToJPQL(String findBy) {
jpql.append(prop + " < ? AND " + prop + " > ?");
} else if (part.endsWith("Like")) {
String prop = extractProp(part, "Like");
jpql.append("LOWER(" + prop + ") like ?");
// HSQL -> LCASE, all other dbs lower
if (isHSQL()) {
jpql.append("LCASE(" + prop + ") like ?");
} else {
jpql.append("LOWER(" + prop + ") like ?");
}
} else if (part.endsWith("Ilike")) {
String prop = extractProp(part, "Ilike");
jpql.append("LOWER(" + prop + ") like LOWER(?)");
if (isHSQL()) {
jpql.append("LCASE(" + prop + ") like LCASE(?)");
} else {
jpql.append("LOWER(" + prop + ") like LOWER(?)");
}
} else if (part.endsWith("Elike")) {
String prop = extractProp(part, "Elike");
jpql.append(prop + " like ?");
Expand All @@ -261,6 +270,11 @@ public String findByToJPQL(String findBy) {
return jpql.toString();
}

private boolean isHSQL() {
String db = Play.configuration.getProperty("db");
return ("mem".equals(db) || "fs".equals(db) || "org.hsqldb.jdbcDriver".equals(Play.configuration.getProperty("db.driver")));
}

protected static String extractProp(String part, String end) {
String prop = part.substring(0, part.length() - end.length());
prop = (prop.charAt(0) + "").toLowerCase() + prop.substring(1);
Expand Down
2 changes: 2 additions & 0 deletions samples-and-tests/just-test-cases/test/SimpleJPATest.java
Expand Up @@ -14,6 +14,8 @@ public void setup() {

@Test
public void testImport() {
List<User> f = User.find("byNameLike", "%").fetch();
assertEquals(2, f.size());
assertEquals(2, User.count());
List<User> users = User.findAll();
User a = users.get(0);
Expand Down

0 comments on commit 5b41faa

Please sign in to comment.