Fix FactoryExpressionTransformer

This commit is contained in:
Timo Westkämper 2015-08-29 14:24:28 +03:00
parent 2a162fa13e
commit ca2e05d8c4
2 changed files with 5 additions and 9 deletions

View File

@ -43,11 +43,6 @@ public final class FactoryExpressionTransformer implements ResultTransformer {
@Override
public Object transformTuple(Object[] tuple, String[] aliases) {
if (projection.getArgs().size() < tuple.length) {
Object[] shortened = new Object[projection.getArgs().size()];
System.arraycopy(tuple, 0, shortened, 0, shortened.length);
tuple = shortened;
}
return projection.newInstance(tuple);
}

View File

@ -739,10 +739,11 @@ public abstract class AbstractJPATest {
public void FactoryExpressions() {
QCat cat = QCat.cat;
QCat cat2 = new QCat("cat2");
JPQLQuery<Tuple> query = query().from(cat).leftJoin(cat.kittens, cat2)
.select(Projections.tuple(cat.id, cat.name,
Projections.tuple(cat2.id, cat2.name,
Projections.tuple(cat2.birthdate).skipNulls()).skipNulls()));
QCat kitten = new QCat("kitten");
JPQLQuery<Tuple> query = query().from(cat)
.leftJoin(cat.mate, cat2)
.leftJoin(cat2.kittens, kitten)
.select(Projections.tuple(cat.id, new QFamily(cat, cat2, kitten).skipNulls()));
assertEquals(6, query.fetch().size());
assertNotNull(query.limit(1).fetchOne());
}