Merge pull request #88 from djimenez/master

Fix for issue #87
This commit is contained in:
Timo Westkämper 2012-01-26 06:12:55 -08:00
commit ecb9463e9c
3 changed files with 28 additions and 13 deletions

View File

@ -185,7 +185,7 @@
<repository>
<id>EclipseLink Repo</id>
<url>http://mirrors.ibiblio.org/pub/mirrors/eclipse/rt/eclipselink/maven.repo</url>
<url>http://download.eclipse.org/rt/eclipselink/maven.repo/</url>
<releases>
<enabled>true</enabled>
</releases>

View File

@ -69,10 +69,10 @@ public class JPQLTemplates extends Templates {
add(Ops.ARRAY_SIZE, "size({0})");
// string
add(Ops.LIKE, "{0} like {1}",1);
add(Ops.LIKE, "{0} like {1} escape '\\'",1);
add(Ops.CONCAT, "concat({0},{1})",0);
add(Ops.MATCHES, "{0} like {1}", 27); // TODO : support real regexes
add(Ops.MATCHES_IC, "{0} like {1}", 27); // TODO : support real regexes
add(Ops.MATCHES, "{0} like {1} escape '\\'", 27); // TODO : support real regexes
add(Ops.MATCHES_IC, "{0} like {1} escape '\\'", 27); // TODO : support real regexes
add(Ops.LOWER, "lower({0})");
add(Ops.SUBSTR_1ARG, "substring({0},{1}+1)");
add(Ops.SUBSTR_2ARGS, "substring({0},{1}+1,{2})");
@ -82,12 +82,12 @@ public class JPQLTemplates extends Templates {
add(Ops.CHAR_AT, "cast(substring({0},{1}+1,1) as char)");
add(Ops.STRING_IS_EMPTY, "length({0}) = 0");
add(Ops.STRING_CONTAINS, "{0} like {%1%}");
add(Ops.STRING_CONTAINS_IC, "{0l} like {%%1%%}");
add(Ops.ENDS_WITH, "{0} like {%1}");
add(Ops.ENDS_WITH_IC, "{0l} like {%%1}");
add(Ops.STARTS_WITH, "{0} like {1%}");
add(Ops.STARTS_WITH_IC, "{0l} like {1%%}");
add(Ops.STRING_CONTAINS, "{0} like {%1%} escape '\\'");
add(Ops.STRING_CONTAINS_IC, "{0l} like {%%1%%} escape '\\'");
add(Ops.ENDS_WITH, "{0} like {%1} escape '\\'");
add(Ops.ENDS_WITH_IC, "{0l} like {%%1} escape '\\'");
add(Ops.STARTS_WITH, "{0} like {1%} escape '\\'");
add(Ops.STARTS_WITH_IC, "{0l} like {1%%} escape '\\'");
add(Ops.INDEX_OF, "locate({1},{0}) - 1");
add(Ops.INDEX_OF_2ARGS, "locate({1},{0},{2}+1) - 1");

View File

@ -165,7 +165,7 @@ public abstract class AbstractStandardTest {
new Cat("Ruth123", 2, 2.0),
new Cat("Felix123", 3, 3.0),
new Cat("Allen123", 4, 4.0),
new Cat("Mary123", 5, 5.0))){
new Cat("Mary_123", 5, 5.0))){
if (prev != null){
cat.addKitten(prev);
}
@ -339,6 +339,11 @@ public abstract class AbstractStandardTest {
public void StartsWith2(){
assertEquals(0, catQuery().where(cat.name.startsWith("X")).count());
}
@Test
public void StartsWith3(){
assertEquals(1, catQuery().where(cat.name.startsWith("Mary_")).count());
}
@Test
public void StartsWith_IgnoreCase(){
@ -354,6 +359,11 @@ public abstract class AbstractStandardTest {
public void EndsWith2(){
assertEquals(0, catQuery().where(cat.name.endsWith("X")).count());
}
@Test
public void EndsWith3(){
assertEquals(1, catQuery().where(cat.name.endsWith("_123")).count());
}
@Test
public void EndsWith_IgnoreCase(){
@ -370,6 +380,11 @@ public abstract class AbstractStandardTest {
assertEquals(1l, catQuery().where(cat.kittens.contains(savedCats.get(0))).count());
}
@Test
public void Contains3(){
assertEquals(1l, catQuery().where(cat.name.contains("_")).count());
}
@Test
public void Length(){
assertEquals(6, catQuery().where(cat.name.length().gt(0)).count());
@ -407,13 +422,13 @@ public abstract class AbstractStandardTest {
@Test
public void Offset(){
List<String> names2 = Arrays.asList("Felix123","Mary123","Ruth123","Some");
List<String> names2 = Arrays.asList("Felix123","Mary_123","Ruth123","Some");
assertEquals(names2, catQuery().orderBy(cat.name.asc()).offset(2).list(cat.name));
}
@Test
public void Limit_and_offset(){
List<String> names3 = Arrays.asList("Felix123","Mary123");
List<String> names3 = Arrays.asList("Felix123","Mary_123");
assertEquals(names3, catQuery().orderBy(cat.name.asc()).limit(2).offset(2).list(cat.name));
}