Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[eclipselink-users] [JPA Criteria Api] CriteriaBuilder sum on two different root fields

Hello
I've found a problem today while trying to add two fields from different
Roots.
...
CriteriaQuery cq = ...;
Root<Entity1> from1 = cq.from(Entity1.class)
Root<Entity2> from2 = cq.from(Entity2.class)
Expression x = cq.sum(from1.get(Entity1_.attr11),
from1.get(Entity1_.attr12));
x = cq.sum(x, from2.get(Entity2_.attr21);
cq.multiselect(from1, from2, x);
...
When running the query I get the following stacktrace which doesn't happen
if I only put in the sum expression attributes from just one entity.

Exception Description: Invalid query key [attr21] in expression.
Query: ReportQuery(referenceClass=PaduaExpedicion )
        at
org.eclipse.persistence.exceptions.QueryException.invalidQueryKeyInExpression(QueryException.java:657)
        at
org.eclipse.persistence.internal.expressions.QueryKeyExpression.validateNode(QueryKeyExpression.java:847)
        at
org.eclipse.persistence.expressions.Expression.normalize(Expression.java:2962)
        at
org.eclipse.persistence.internal.expressions.DataExpression.normalize(DataExpression.java:342)
        at
org.eclipse.persistence.internal.expressions.QueryKeyExpression.normalize(QueryKeyExpression.java:612)
        at
org.eclipse.persistence.internal.expressions.QueryKeyExpression.normalize(QueryKeyExpression.java:599)
        at
org.eclipse.persistence.internal.expressions.FunctionExpression.normalize(FunctionExpression.java:385)
        at
org.eclipse.persistence.internal.expressions.FunctionExpression.normalize(FunctionExpression.java:385)
        at
org.eclipse.persistence.internal.expressions.FunctionExpression.normalize(FunctionExpression.java:385)
        at
org.eclipse.persistence.internal.expressions.FunctionExpression.normalize(FunctionExpression.java:385)
        at
org.eclipse.persistence.internal.expressions.FunctionExpression.normalize(FunctionExpression.java:385)
        at
org.eclipse.persistence.internal.expressions.FunctionExpression.normalize(FunctionExpression.java:385)
        at
org.eclipse.persistence.internal.expressions.SQLSelectStatement.normalize(SQLSelectStatement.java:1311)
        at
org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.buildReportQuerySelectStatement(ExpressionQueryMechanism.java:560)
        at
org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.buildReportQuerySelectStatement(ExpressionQueryMechanism.java:506)
        at
org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.prepareReportQuerySelectAllRows(ExpressionQueryMechanism.java:1542)
        at
org.eclipse.persistence.queries.ReportQuery.prepareSelectAllRows(ReportQuery.java:1298)
        at
org.eclipse.persistence.queries.ReadAllQuery.prepare(ReadAllQuery.java:628)
        at
org.eclipse.persistence.queries.ReportQuery.prepare(ReportQuery.java:1047)
        at
org.eclipse.persistence.queries.DatabaseQuery.checkPrepare(DatabaseQuery.java:577)
        at
org.eclipse.persistence.queries.ObjectLevelReadQuery.checkPrepare(ObjectLevelReadQuery.java:824)
        at
org.eclipse.persistence.queries.DatabaseQuery.checkPrepare(DatabaseQuery.java:537)
        at
org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:778)
        at
org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1040)
        at
org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:383)
        at
org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1126)
        at
org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2842)
        at
org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1521)
        at
org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1503)
        at
org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1477)
        at
org.eclipse.persistence.internal.jpa.EJBQueryImpl.executeReadQuery(EJBQueryImpl.java:484)
        at
org.eclipse.persistence.internal.jpa.EJBQueryImpl.getResultList(EJBQueryImpl.java:741)

--
Marc Nuri
-- 
View this message in context: http://old.nabble.com/-JPA-Criteria-Api--CriteriaBuilder-sum-on-two-different-root-fields-tp31163028p31163028.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.



Back to the top