#174 Add nullsFirst and nullsLast serialization to JPA

This commit is contained in:
Timo Westkämper 2013-03-12 11:24:59 +02:00
parent 79afee0c79
commit 499b8d7761
2 changed files with 21 additions and 1 deletions

View File

@ -48,6 +48,7 @@ import com.mysema.query.types.FactoryExpression;
import com.mysema.query.types.Operation;
import com.mysema.query.types.Operator;
import com.mysema.query.types.Ops;
import com.mysema.query.types.Order;
import com.mysema.query.types.OrderSpecifier;
import com.mysema.query.types.ParamExpression;
import com.mysema.query.types.Path;
@ -226,7 +227,12 @@ public class JPQLSerializer extends SerializerBase<JPQLSerializer> {
append(COMMA);
}
handle(os.getTarget());
append(" " + os.getOrder().toString().toLowerCase(Locale.ENGLISH));
append(os.getOrder() == Order.ASC ? " asc" : " desc");
if (os.getNullHandling() == OrderSpecifier.NullHandling.NullsFirst) {
append(" nulls first");
} else if (os.getNullHandling() == OrderSpecifier.NullHandling.NullsLast) {
append(" nulls last");
}
first = false;
}
}

View File

@ -749,6 +749,20 @@ public abstract class AbstractStandardTest {
NumberPath<Double> weight = new NumberPath<Double>(Double.class, "weight");
query().from(cat).orderBy(weight.asc()).list(cat.bodyWeight.as(weight));
}
@Test
public void Order_NullsFirst() {
query().from(cat)
.orderBy(cat.name.asc().nullsFirst())
.list(cat);
}
@Test
public void Order_NullsLast() {
query().from(cat)
.orderBy(cat.name.asc().nullsLast())
.list(cat);
}
@Test
@NoOpenJPA // FIXME