Tengo el siguiente modelo Activity
con la propiedad dependiente del idioma Title
. La dependencia del idioma se define con dos entidades adicionales Translation
(El título es de este tipo, muchos-a-uno) y TranslationValue
(uno-a-muchos)Unir a obtención: "búsqueda especificada de obtención de unión, pero el propietario de la asociación obtenida fue
Si escribo lo siguiente HQL:.
from Activity act join fetch act.Title join fetch act.Title.TranslationValuesSet
Esto funciona bien hasta ahora, pero tan pronto como se agrego acto en. el enunciado select, tengo un problema con la combinación de TranslationValuesSet:
select act from Activity act join fetch act.Title join fetch act.Title.TranslationValuesSet
NHibernate.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=,role=Translation.TranslationValuesSet,tableName=TranslationValue,tableAlias=translatio3_,origin=Translation translatio2_,colums={translatio2_.TranslationId ,className=TranslationValue}}] [select act from Activity act join fetch act.Title join fetch act.Title.TranslationValuesSet
No puedo entender por qué Hibernate no le gusta eso !?
Thx para cualquier tipps!
¿Y por qué es eso? Funciona para mí también, después de tener problemas después de actualizar la versión de Hibernate. ¿Cambiaron algo? La misma consulta exacta se ejecutó correctamente en JBoss 4.2.2.GA pero no en JBoss 6.0.0.Final. –
Sin embargo, esto no funcionará si intenta seleccionar una combinación de campos y entidades anidadas :( – chrismarx
Me enfrenté al mismo problema al actualizar de Hibernate 3.3 a Hibernate 3.6 y en ninguna parte de la (s) guía (s) oficial (es) de migración mencionó que el comportamiento del analizador de consultas podría haber cambiado. ¡Hibernate necesita hacer un mejor trabajo con sus guías de migración! –