Voy de nuevo... intente cortar la cabeza al toro, pero algo raro me
sucedio. Muestro mi configuración:

cfg = new NHibernate.Cfg.Configuration();
cfg.Properties.Add(NHibernate.Cfg.Environment.ConnectionProvider,
"NHibernate.Connection.DriverConnectionProvider");
cfg.Properties.Add
(NHibernate.Cfg.Environment.CurrentSessionContextClass, "web");
cfg.Properties.Add(NHibernate.Cfg.Environment.ConnectionDriver,
"NHibernate.Driver.SqlClientDriver");
cfg.Properties.Add(NHibernate.Cfg.Environment.Dialect,
"NHibernate.Dialect.MsSql2008Dialect");
cfg.Properties.Add(NHibernate.Cfg.Environment.MaxFetchDepth, "-1");
cfg.Properties.Add
(NHibernate.Cfg.Environment.ProxyFactoryFactoryClass,
"NHibernate.ByteCode.Castle.ProxyFactoryFactory,
NHibernate.ByteCode.Castle");
cfg.Properties.Add(NHibernate.Cfg.Environment.UseSecondLevelCache,
"false");
cfg.Properties.Add(NHibernate.Cfg.Environment.UseQueryCache, "false");
cfg.Properties.Add(NHibernate.Cfg.Environment.ShowSql, "false");
cfg.Properties.Add(NHibernate.Cfg.Environment.BatchSize, "16");
cfg.Properties.Add(NHibernate.Cfg.Environment.DefaultSchema, "dbo");
cfg.Properties.Add(NHibernate.Cfg.Environment.GenerateStatistics,
"true");

cfg.Properties.Add(NHibernate.Cfg.Environment.QueryTranslator,
"NHibernate.Hql.Classic.ClassicQueryTranslatorFactory, NHibernate ");

Ahora en "teoria" realiza correcto el parseo, y aunque ya no me
devuelve una excepción el hql si me arroja un array vacio...

Algo estaré haciendo mal? estoy usando la variable de forma correcta?

Saludos, y gracias por la ayuda.

On 9 oct, 13:05, roberto <[email protected]> wrote:
> Perfecto... analizo las dos opciones que me dá... muchas gracias, me
> quedo ya mas tranquilo =)
>
> Saludos...
>
> On 9 oct, 13:02, Fabio Maulo <[email protected]> wrote:
>
>
>
> > ah otra cosa...Si queres cortar la cabeza al toro es suficiente con esto:
> > <property name ="query.factory_class">
> > NHibernate.Hql.Classic.ClassicQueryTranslatorFactory, NHibernate
> > </property>
>
> > El 9 de octubre de 2009 17:01, Fabio Maulo <[email protected]> escribió:
>
> > > no tiene sentido "left join fetch obj.InformacionGenerica".Si generas las
> > > HQL a run-time deberias hacer lo mismo que hace NH generando SQL.
> > > Cuando escribis "obj.InformacionGenerica.CodigoPersona.Clave" NH se da
> > > cuenta y se fija en los metadata para conocer las relaciones, con eso
> > > construye los joins necesarios para llegar a la propiedad "Clave" que está
> > > tres niveles mas abajo.
>
> > > Si queres generar HQL dinamicas deberías hacer lo mismo o, even better,
> > > generar Criteria y no HQL.
>
> > > El 9 de octubre de 2009 16:56, roberto <[email protected]> escribió:
>
> > >> Si entiendo el punto, una vez que contamos con la información del
> > >> component en la misma tabla... en otro órden de ideas, ¿lo que me
> > >> intenta decir es que esta nueva versión lo identifica como error?
>
> > >> Yo lo hago asi debido a que al hql que esta viendo se crea en runtime,
> > >> identifica la propiedad InformacionGenerica en la clase como objeto
> > >> (aunque en el mapping nosotros sabemos que es un Component) y
> > >> agregandolo a la clausula from como nested object...
>
> > >> Pedí ayuda debido a que en la versión 1.2 de NH me permitia hacerlo...
> > >> =)
>
> > >> On 9 oct, 12:49, Fabio Maulo <[email protected]> wrote:
> > >> > preguta...Que sentido tiene un "left join" o un "join" con un component
> > >> ?
>
> > >> > El 9 de octubre de 2009 16:06, roberto <[email protected]>
> > >> escribió:
>
> > >> > > Hola a todos...
>
> > >> > > Me preguntaba si alguno de ustedes se habia topado con el siguiente
> > >> > > error:
>
> > >> > > Justo acabo de migrar de la versión 1.2 a 2.1 de NH y dentro de todo
> > >> > > funciono bien, excepto por un hql query el cual involucra un 
> > >> > > Component
> > >> > > en el mapping...
>
> > >> > > Agrego mi mapping:
>
> > >> > > <?xml version="1.0" encoding="utf-8" ?>
> > >> > > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
> > >> > >  <class name="Core.Moneda, Core" table="tblMonedas" lazy="false">
> > >> > >    <id name="Id" column="id" type="int" unsaved-value="0">
> > >> > >      <generator class="identity" />
> > >> > >    </id>
> > >> > >    <property name="Clave" column="clave" type="int" />
> > >> > >    <property name="Nombre" column="nombre" type="string" />
> > >> > >    <many-to-one name="TipoMoneda" column="tipoMoneda"
> > >> > > class="Core.TipoMoneda, Core" cascade="none" />
> > >> > >    <property name="GenSubCuenta" column="subCuenta" type="string" />
> > >> > >    <component name="InformacionGenerica"
> > >> > > class="Core.InformacionGenerica, Core">
> > >> > >      <property name="Alta" column="alta" />
> > >> > >      <property name="Cambio" column="cambio" />
> > >> > >      <property name="Baja" column="baja" />
> > >> > >      <property name="Comentario" column="comentarios" />
> > >> > >      <many-to-one name="CodigoPersona" class="Core.Usuario, Core"
> > >> > > column="codigoUsuario" />
> > >> > >    </component>
> > >> > >  </class>
>
> > >> > > Mi HQL:
>
> > >> > > select obj from Moneda as obj left join fetch obj.TipoMoneda left 
> > >> > > join
> > >> > > fetch obj.InformacionGenerica where  obj.Clave like 'pesos' or
> > >> > > obj.Nombre like '%pesos%' or obj.TipoMoneda.Nombre like '%pesos%' or
> > >> > > obj.GenSubCuenta like '%pesos%' or obj.InformacionGenerica.Comentario
> > >> > > like '%pesos%' or obj.InformacionGenerica.Alta like '%pesos%' or
> > >> > > obj.InformacionGenerica.Cambio like '%pesos%' or
> > >> > > obj.InformacionGenerica.Baja like '%pesos%' or
> > >> > > obj.InformacionGenerica.CodigoPersona.Clave like 'pesos' or
> > >> > > obj.InformacionGenerica.CodigoPersona.Nombre like '%pesos%'
>
> > >> > > Finalmente la excepción:
>
> > >> > >   en NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.CreateFromJoinElement
> > >> > > (IASTNode path, IASTNode alias, Int32 joinType, IASTNode fetchNode,
> > >> > > IASTNode propertyFetch, IASTNode with)
> > >> > >   en NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.joinElement()
> > >> > >   en NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.fromElement()
> > >> > >   en NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.fromElementList()
> > >> > >   en NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.fromClause()
> > >> > >   en NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.unionedQuery()
> > >> > >   en NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.query()
> > >> > >   en NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.selectStatement()
> > >> > >   en NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.statement()
> > >> > >   en NHibernate.Hql.Ast.ANTLR.HqlSqlTranslator.Translate()
> > >> > >   en NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.Analyze
> > >> > > (HqlParseEngine parser, String collectionRole)
> > >> > >   en NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.DoCompile
> > >> > > (IDictionary`2 replacements, Boolean shallow, String collectionRole)
> > >> > >   en NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.Compile
> > >> > > (IDictionary`2 replacements, Boolean shallow)
> > >> > >   en NHibernate.Engine.Query.HQLQueryPlan..ctor(String hql, String
> > >> > > collectionRole, Boolean shallow, IDictionary`2 enabledFilters,
> > >> > > ISessionFactoryImplementor factory)...
>
> > >> > > Estuve leyendo un thead en los foros de Hibernate con el mismo
> > >> > > problema:
>
> > >> > >http://opensource.atlassian.com/projects/hibernate/browse/HHH-1895?pa.
> > >> ..
> > >> > > pero comentan que es un unsupported feature, no se si para NH suceda
> > >> > > lo mismo...
>
> > >> > > Agradezco mucho su ayuda...
>
> > >> > > Saludos desde México.
>
> > >> > --
> > >> > Fabio Maulo
>
> > > --
> > > Fabio Maulo
>
> > --
> > Fabio Maulo
--~--~---------~--~----~------------~-------~--~----~
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
-~----------~----~----~----~------~----~------~--~---

Responder a