#1333 - ENH: Support "dynamic formula" with findSingleAttributeList() ... e.g. .select("concat(lastName,', ',firstName)")

This commit is contained in:
Rob Bygrave
2018-03-06 17:29:45 +13:00
parent 05b8adbf6e
commit c1c85b67c2
12 changed files with 266 additions and 100 deletions
@@ -10,24 +10,27 @@ import javax.persistence.PersistenceException;
*/
class DynamicPropertyAggregationFormula extends DynamicPropertyBase {
private final String parsedAggregation;
private final String parsedFormula;
private final boolean aggregate;
private final BeanProperty asTarget;
DynamicPropertyAggregationFormula(String name, ScalarType<?> scalarType, String parsedAggregation, BeanProperty asTarget) {
DynamicPropertyAggregationFormula(String name, ScalarType<?> scalarType, String parsedFormula, boolean aggregate, BeanProperty asTarget) {
super(name, name, null, scalarType);
this.parsedAggregation = parsedAggregation;
this.parsedFormula = parsedFormula;
this.aggregate = aggregate;
this.asTarget = asTarget;
}
@Override
public String toString() {
return "DynamicPropertyFormula[" + parsedAggregation + "]";
return "DynamicPropertyFormula[" + parsedFormula + "]";
}
@Override
public boolean isAggregation() {
return true;
return aggregate;
}
@Override
@@ -46,7 +49,7 @@ class DynamicPropertyAggregationFormula extends DynamicPropertyBase {
@Override
public void appendSelect(DbSqlContext ctx, boolean subQuery) {
ctx.appendParseSelect(parsedAggregation);
ctx.appendParseSelect(parsedFormula);
}
}