![JAR search and dependency download from the Maven repository](/logo.png)
io.pelle.mango.db.query.ServerAggregateQuery Maven / Gradle / Ivy
The newest version!
package io.pelle.mango.db.query;
import io.pelle.mango.client.base.vo.EntityDescriptor;
import io.pelle.mango.client.base.vo.IAttributeDescriptor;
import io.pelle.mango.client.base.vo.IEntityVOMapper;
import io.pelle.mango.client.base.vo.IVOEntity;
import io.pelle.mango.client.base.vo.query.AggregateQuery;
public class ServerAggregateQuery extends
BaseServerQuery> {
private ServerAggregateQuery(AggregateQuery query) {
super(query);
}
public static ServerAggregateQuery adapt(
AggregateQuery query) {
return new ServerAggregateQuery<>(query);
}
private String getSumSelectClause() {
StringBuilder sb = new StringBuilder();
for (IAttributeDescriptor> attributeDescriptor : getBaseQuery().getQuery().getSums()) {
if (attributeDescriptor.getParent() instanceof EntityDescriptor) {
EntityDescriptor> entityDescriptor = (EntityDescriptor>) attributeDescriptor.getParent();
String alias = getBaseQuery().getAliasProvider().getAliasFor(entityDescriptor.getVOEntityClass());
sb.append("SUM(");
sb.append(alias);
sb.append(".");
sb.append(attributeDescriptor.getAttributeName());
sb.append(")");
}
}
return sb.toString();
}
public String getJPQL(IEntityVOMapper entityVOMapper) {
String result = "SELECT " + getSumSelectClause() + " FROM "
+ getFromClause(entityVOMapper) + " " + getJoinClause() + " "
+ getWhereClause();
return result.trim().replaceAll("\\b\\s{2,}\\b", " ");
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy