Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/05/2015, 10:51
delhorno
 
Fecha de Ingreso: enero-2005
Mensajes: 85
Antigüedad: 19 años, 3 meses
Puntos: 0
Consulta hibernate avg()

Estoy tratando de averiguar la media de puntuacion de unos mensajes.

La tabla es: un mensaje tiene varias respuestas, cada linea de respuesta tiene un id de mensaje para la relacion.

La consulta quedaria asi:

select avg(r.valoracion) from Respuesta r left join fetch r.mensaje m where m.tipo='valoracion' and m.usuarioDestino.id=1

Pero me lanza la siguiente excepción:

Código:
org.hibernate.QueryException: query specified join fetching, but the owner of the fetched association was not present in the select list [FromElement{explicit,not a collection join,fetch join,fetch non-lazy properties,classAlias=m,role=com.blabla.modelo.Respuesta.mensaje,tableName=blabla.mensaje,tableAlias=mensaje1_,origin=blabla.respuesta respuesta0_,columns={respuesta0_.idMensaje ,className=com.blabla.modelo.Mensaje}}] [select avg(r.valoracion) from com.blabla.modelo.Respuesta r left join fetch r.mensaje m where m.tipo='valoracion' and m.usuarioDestino.id=1]
	at org.hibernate.QueryException.generateQueryException(QueryException.java:137)
	at org.hibernate.QueryException.wrapWithQueryString(QueryException.java:120)
	at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:234)
	at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:158)
	at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:126)
	at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:88)
	at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:190)
	at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:301)
	at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:236)
	at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1796)
Caused by: org.hibernate.QueryException: query specified join fetching, but the owner of the fetched association was not present in the select list [FromElement{explicit,not a collection join,fetch join,fetch non-lazy properties,classAlias=m,role=com.blabla.modelo.Respuesta.mensaje,tableName=blabla.mensaje,tableAlias=mensaje1_,origin=blabla.respuesta respuesta0_,columns={respuesta0_.idMensaje ,className=com.blabla.modelo.Mensaje}}]
	at org.hibernate.hql.internal.ast.tree.SelectClause.initializeExplicitSelectClause(SelectClause.java:227)
	at org.hibernate.hql.internal.ast.HqlSqlWalker.useSelectClause(HqlSqlWalker.java:923)
	at org.hibernate.hql.internal.ast.HqlSqlWalker.processQuery(HqlSqlWalker.java:691)
	at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:663)
	at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:299)
	at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:247)
	at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:278)
	at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:206)
	... 9 more
__________________
Videos Graciosos