Merge pull request #1568 from querydsl/i1555

Improve in serialization
This commit is contained in:
John Tims 2015-09-24 21:36:52 -04:00
commit 89e5e23f70
6 changed files with 60 additions and 9 deletions

View File

@ -219,9 +219,16 @@ public class LuceneSerializer {
Constant<Collection<?>> collConstant = (Constant<Collection<?>>) operation.getArg(1);
Collection<?> values = collConstant.getConstant();
BooleanQuery bq = new BooleanQuery();
for (Object value : values) {
String[] str = convert(path, value);
bq.add(eq(field, str, ignoreCase), Occur.SHOULD);
if (Number.class.isAssignableFrom(path.getType())) {
for (Object value : values) {
TermQuery eq = new TermQuery(new Term(field, convertNumber((Number) value)));
bq.add(eq, Occur.SHOULD);
}
} else {
for (Object value : values) {
String[] str = convert(path, value);
bq.add(eq(field, str, ignoreCase), Occur.SHOULD);
}
}
return bq;
}

View File

@ -179,6 +179,16 @@ public class LuceneQueryTest {
assertEquals(3, query.distinct().fetchCount());
}
@Test
public void In() {
assertEquals(2, query.where(title.in("Jurassic Park", "Nummisuutarit")).fetchCount());
}
@Test
public void In2() {
assertEquals(3, query.where(year.in(1990, 1864)).fetchCount());
}
@Test
public void List_Sorted_By_Year_Ascending() {
query.where(year.between(1800, 2000));

View File

@ -222,9 +222,16 @@ public class LuceneSerializer {
Constant<Collection<?>> expectedConstant = (Constant<Collection<?>>) operation.getArg(1);
Collection<?> values = expectedConstant.getConstant();
BooleanQuery bq = new BooleanQuery();
for (Object value : values) {
String[] str = convert(path, value);
bq.add(eq(field, str, ignoreCase), Occur.SHOULD);
if (Number.class.isAssignableFrom(path.getType())) {
for (Object value : values) {
TermQuery eq = new TermQuery(new Term(field, convertNumber((Number) value)));
bq.add(eq, Occur.SHOULD);
}
} else {
for (Object value : values) {
String[] str = convert(path, value);
bq.add(eq(field, str, ignoreCase), Occur.SHOULD);
}
}
return bq;
}

View File

@ -177,6 +177,16 @@ public class LuceneQueryTest {
assertEquals(3, query.distinct().fetchCount());
}
@Test
public void In() {
assertEquals(2, query.where(title.in("Jurassic Park", "Nummisuutarit")).fetchCount());
}
@Test
public void In2() {
assertEquals(3, query.where(year.in(1990, 1864)).fetchCount());
}
@Test
public void List_Sorted_By_Year_Ascending() {
query.where(year.between(1800, 2000));

View File

@ -269,9 +269,16 @@ public class LuceneSerializer {
.getArg(1);
Collection<?> values = expectedConstant.getConstant();
BooleanQuery bq = new BooleanQuery();
for (Object value : values) {
String[] str = convert(path, value);
bq.add(eq(field, str, ignoreCase), Occur.SHOULD);
if (Number.class.isAssignableFrom(path.getType())) {
for (Object value : values) {
TermQuery eq = new TermQuery(new Term(field, convertNumber((Number) value)));
bq.add(eq, Occur.SHOULD);
}
} else {
for (Object value : values) {
String[] str = convert(path, value);
bq.add(eq(field, str, ignoreCase), Occur.SHOULD);
}
}
return bq;
}

View File

@ -253,6 +253,16 @@ public class LuceneQueryTest {
assertEquals(3, query.distinct().fetchCount());
}
@Test
public void In() {
assertEquals(2, query.where(title.in("Jurassic Park", "Nummisuutarit")).fetchCount());
}
@Test
public void In2() {
assertEquals(3, query.where(year.in(1990, 1864)).fetchCount());
}
@Test
public void List_Sorted_By_Year_Ascending() {
query.where(year.between(1800, 2000));