Es que "MyDTO" ESTA siendo persistida; que sea solo en una dirección
(lectura) es un detalle.
<import> se usa, por ejemplo, si tenés una interface no mapeada y querés
hacer queries HQL utilizándola. También sirve para asignar distintos nombres
a clases de diferences namespaces, para evitar calificarlas.
A fines prácticos, se usa muy poco.
Diego
On Fri, Nov 5, 2010 at 14:59, Carlos Bustos <[email protected]>wrote:
> Hola. Gracias Diego !!
> Hice el mapping de la clase MyDTO y funcionó. Pensé que habia que declarar
> el mapping de una clase, en los casos que la clase necesite ser persistida.
> MyDTO solo contiene el resultado el resultado de una projection.
>
> Ahora, no me quedó claro cuando debe importarse una clase... voy a buscar
> sobre eso.
>
> Gracias
>
> ------------------------------
> *From:* Diego Mijelshon <[email protected]>
> *To:* [email protected]
> *Sent:* Fri, November 5, 2010 10:23:04 AM
> *Subject:* Re: [NHibernate-Hispano] NHibernate + Store Procedure +
> NamedQuery
>
> <import> es sólo para que NHibernate "conozca" una clase y puedas emplearla
> en queries; no es suficiente para mapearla.
>
> Diego
>
>
> On Thu, Nov 4, 2010 at 22:04, Carlos Bustos
> <[email protected]>wrote:
>
>> Hola. Teng un problema al tratar de utilizar procedimientos almacenados
>> con NHibernate . Mi procedimiento almacenado está declarado en una
>> namedQuery.
>> Tanto el mapping del DTO como la namedQuery están marcadas con "Embedded
>> Resource"
>>
>> La excepción que obtengo es :
>> NHibernate.MappingException: No persister for: Muestra.Commons.DTO.MyDTO
>>
>> Cualquier clase de ayuda me sirve!! Muchas gracias.
>>
>> Este es el DTO:
>>
>> public class MyDTO
>> {
>> public MyDTO(DateTime fecha)
>> {
>> Fecha = fecha;
>> }
>> public DateTime Fecha { get; set; }
>> }
>>
>> El mapping del DTO :
>>
>> <?xml version="1.0" encoding="utf-8" ?>
>> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
>> assembly="Muestra.Commons"
>> namespace="Muestra.Commons.DTO">
>> <import class="MyDTO"/>
>> </hibernate-mapping>
>>
>> la namedQuery :
>>
>> <?xml version="1.0" encoding="utf-8" ?>
>> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
>> namespace="Muestra.Commons.DTO" assembly="Muestra.Commons">
>> <sql-query name="GetDTO" callable="true">
>> <return alias="T1" class="MyDTO">
>> <return-property name="Fecha" column="Fecha"/>
>> </return>
>> exec dbo.StoreProcedure
>> </sql-query>
>> </hibernate-mapping>
>>
>>
>> El log completo :
>>
>> INFO [7] (:0) - NHibernate 3.0.0.2001 (3.0.0.2001)
>>
>> 953 [7] INFO NHibernate.Cfg.Environment (null) - NHibernate 3.0.0.2001
>> (3.0.0.2001)
>>
>> INFO [7] (:0) - hibernate-configuration section not found in application
>> configuration file
>>
>> 1190 [7] INFO NHibernate.Cfg.Environment (null) - hibernate-configuration
>> section not found in application configuration file
>> INFO [7] (:0) - Bytecode provider name : lcg
>>
>> 1193 [7] INFO NHibernate.Cfg.Environment (null) - Bytecode provider name :
>> lcg
>> INFO [7] (:0) - Using reflection optimizer
>> 1198 [7] INFO NHibernate.Cfg.Environment (null) - Us
>> ing reflection optimizer
>> DEBUG [7] (:0) - connection.connection_string_name=DevDb
>>
>> 2558 [7] DEBUG NHibernate.Cfg.Configuration (null) -
>> connection.connection_string_name=DevDb
>> DEBUG [7] (:0) - dialect=NHibernate.Dialect.MsSql2000Dialect
>>
>> 2566 [7] DEBUG NHibernate.Cfg.Configuration (null) -
>> dialect=NHibernate.Dialect.MsSql2000Dialect
>>
>> DEBUG [7] (:0) -
>> current_session_context_class=NHibernate.Context.ThreadStaticSessionContext
>>
>> 2568 [7] DEBUG NHibernate.Cfg.Configuration (null) -
>> current_session_context_class=NHibernate.Context.ThreadStaticSessionContext
>>
>> DEBUG [7] (:0) -
>> proxyfactory.factory_class=NHibernate.ByteCode.LinFu.ProxyFactoryFactory,
>> NHibernate.ByteCode.LinFu
>> 2569 [7] DEBUG NHibernate.Cfg.Configuration (null) - pro
>> xyfactory.factory_class=NHibernate.ByteCode.LinFu.ProxyFactoryFactory,
>> NHibernate.ByteCode.LinFu
>> DEBUG [7] (:0) - generate_statistics=true
>>
>> 2571 [7] DEBUG NHibernate.Cfg.Configuration (null) - generate_statistics=true
>> DEBUG [7] (:0) - query.substitutions=true=1;false=0
>>
>> 2572 [7] DEBUG NHibernate.Cfg.Configuration (null) -
>> query.substitutions=true=1;false=0
>>
>> DEBUG [7] (:0) -
>> connection.provider=NHibernate.Connection.DriverConnectionProvider
>>
>> 2573 [7] DEBUG NHibernate.Cfg.Configuration (null) -
>> connection.provider=NHibernate.Connection.DriverConnectionProvider
>> DEBUG [7] (:0) - connection.driver_class=NHibernate.Driver.SqlClientDriver
>> 2575 [7] DEBUG NHibernate.Cfg.Configuration (null) -
>> connection.driver_class=NHibernate.Driver.SqlClie
>> ntDriver
>> DEBUG [7] (:0) - adonet.batch_size=20
>> 2577 [7] DEBUG NHibernate.Cfg.Configuration (null) - adonet.batch_size=20
>> DEBUG [7] (:0) - NHibernate.Test<-Muestra.Data
>>
>> 2579 [7] DEBUG NHibernate.Cfg.Configuration (null) -
>> NHibernate.Test<-Muestra.Data
>> INFO [7] (:0) - Searching for mapped documents in assembly: Muestra.Data
>>
>> 2581 [7] INFO NHibernate.Cfg.Configuration (null) - Searching for mapped
>> documents in assembly: Muestra.Data
>> INFO [7] (:0) - Mapping resource: Muestra.Data.Mappings.MyDTO.hbm.xml
>>
>> 2602 [7] INFO NHibernate.Cfg.Configuration (null) - Mapping resource:
>> Muestra.Data.Mappings.MyDTO.hbm.xml
>> INFO [7] (:0)&nbs p;- Using dialect: NHibernate.Dialect.MsSql2000Dialect
>>
>> 6050 [7] INFO NHibernate.Dialect.Dialect (null) - Using dialect:
>> NHibernate.Dialect.MsSql2000Dialect
>>
>> DEBUG [7] (:0) - Import: MyDTO -> Muestra.Commons.DTO.MyDTO, Muestra.Commons
>>
>> 6280 [7] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder (null) - Import: MyDTO ->
>> Muestra.Commons.DTO.MyDTO, Muestra.Commons
>> INFO [7] (:0) - Mapping resource: Muestra.Data.Queries.GetDTO.hbm.xml
>>
>> 6294 [7] INFO NHibernate.Cfg.Configuration (null) - Mapping resource:
>> Muestra.Data.Queries.GetDTO.hbm.xml
>> INFO [7] (:0) - Using dialect: NHibernate.Dialect.MsSql2000Dialect
>> 6377 [7] INFO NHibernate.Dialect.Dialect (null) - Using&n
>> bsp;dialect: NHibernate.Dialect.MsSql2000Dialect
>> INFO [7] (:0) - Configured SessionFactory: NHibernate.Test
>>
>> 6401 [7] INFO NHibernate.Cfg.Configuration (null) - Configured
>> SessionFactory: NHibernate.Test
>>
>> DEBUG [7] (:0) - properties:
>> System.Collections.Generic.Dictionary`2[System.String,System.String]
>>
>> 6405 [7] DEBUG NHibernate.Cfg.Configuration (null) - properties:
>> System.Collections.Generic.Dictionary`2[System.String,System.String]
>> INFO [7] (:0) - checking mappings queue
>>
>> 6434 [7] INFO NHibernate.Cfg.Configuration (null) - checking mappings queue
>> INFO [7] (:0) - processing one-to-many association mappings
>> 6437 [7] INFO NHibernate.Cfg.Configuration (null) 
>> ;- processing one-to-many association mappings
>> DEBUG [7] (:0) - Named SQL query: GetDTO -> exec dbo.SP
>>
>> 6493 [7] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder (null) - Named SQL query:
>> GetDTO -> exec dbo.SP
>> INFO [7] (:0) - processing one-to-one association property references
>>
>> 6496 [7] INFO NHibernate.Cfg.Configuration (null) - processing one-to-one
>> association property references
>> INFO [7] (:0) - processing foreign key constraints
>>
>> 6498 [7] INFO NHibernate.Cfg.Configuration (null) - processing foreign key
>> constraints
>> INFO [7] (:0) - processing filters (second pass)
>> 6502 [7]
>> INFO NHibernate.Cfg.Configuration (null) - processing filters (second pass)
>> INFO [7] (:0) - Using dialect: NHibernate.Dialect.MsSql2000Dialect
>>
>> 6536 [7] INFO NHibernate.Dialect.Dialect (null) - Using dialect:
>> NHibernate.Dialect.MsSql2000Dialect
>> INFO [7] (:0) - Using dialect defined converter
>>
>> 6594 [7] INFO NHibernate.Exceptions.SQLExceptionConverterFactory (null) -
>> Using dialect defined converter
>> INFO [7] (:0) - Generate SQL with comments: disabled
>>
>> 6596 [7] INFO NHibernate.Cfg.SettingsFactory (null) - Generate SQL with
>> comments: disabled
>> INFO [7] (:0) - Initializing connection provider: NHibernate.Connectio
>> n.DriverConnectionProvider
>>
>> 6601 [7] INFO NHibernate.Connection.ConnectionProviderFactory (null) -
>> Initializing connection provider:
>> NHibernate.Connection.DriverConnectionProvider
>> INFO [7] (:0) - Configuring ConnectionProvider
>>
>> 6605 [7] INFO NHibernate.Connection.ConnectionProvider (null) - Configuring
>> ConnectionProvider
>>
>> INFO [7] (:0) - Transaction factory:
>> NHibernate.Transaction.AdoNetWithDistributedTransactionFactory
>>
>> 6855 [7] INFO NHibernate.Cfg.SettingsFactory (null) - Transaction factory:
>> NHibernate.Transaction.AdoNetWithDistributedTransactionFactory
>> INFO [7] (:0) - Optimize cache for minimal puts: False
>> 6861 [7] INFO NHibernate.Cfg.SettingsFactory (null) - Optimize&n
>> bsp;cache for minimal puts: False
>> INFO [7] (:0) - Connection release mode: auto
>>
>> 6863 [7] INFO NHibernate.Cfg.SettingsFactory (null) - Connection release
>> mode: auto
>> INFO [7] (:0) - Default batch fetch size: 1
>>
>> 6866 [7] INFO NHibernate.Cfg.SettingsFactory (null) - Default batch fetch
>> size: 1
>> INFO [7] (:0) - Statistics: enabled
>> 6868 [7] INFO NHibernate.Cfg.SettingsFactory (null) - Statistics: enabled
>> INFO [7] (:0) - Deleted entity synthetic identifier rollback: disabled
>> 6870 [7] INFO NHibernate.Cfg.SettingsFactory (null) - Deleted entity
>> synthetic identifier rollback:&nbs
>> p;disabled
>>
>> INFO [7] (:0) - Query translator:
>> NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory
>>
>> 6872 [7] INFO NHibernate.Cfg.SettingsFactory (null) - Query translator:
>> NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory
>> INFO [7] (:0) - Query language substitutions: {'true'='1', 'false'='0'}
>>
>> 6881 [7] INFO NHibernate.Cfg.SettingsFactory (null) - Query language
>> substitutions: {'true'='1', 'false'='0'}
>>
>> INFO [7] (:0) - cache provider: NHibernate.Cache.NoCacheProvider,
>> NHibernate, Version=3.0.0.2001, Culture=neutral,
>> PublicKeyToken=aa95f207798dfdb4
>> 6887 [7] INFO NHibernate.Cfg.SettingsFactory (null) - cache provider:
>> NHibernate.Cache.NoCacheProvider, NHibernate, Version
>> =3.0.0.2001, Culture=neutral, PublicKeyToken=aa95f207798dfdb4
>> DEBUG [7] (:0) - Wrap result sets: disabled
>>
>> 6892 [7] DEBUG NHibernate.Cfg.SettingsFactory (null) - Wrap result sets:
>> disabled
>>
>> INFO [7] (:0) - Batcher factory:
>> NHibernate.AdoNet.SqlClientBatchingBatcherFactory, NHibernate,
>> Version=3.0.0.2001, Culture=neutral, PublicKeyToken=aa95f207798dfdb4
>>
>> 6899 [7] INFO NHibernate.Cfg.SettingsFactory (null) - Batcher factory:
>> NHibernate.AdoNet.SqlClientBatchingBatcherFactory, NHibernate,
>> Version=3.0.0.2001, Culture=neutral, PublicKeyToken=aa95f207798dfdb4
>> INFO [7] (:0) - Default entity-mode: Poco
>> 6903 [7] INFO NHibernate.Cfg.SettingsFactory (null) - Default entity-mode:
>> Poco
>> INFO [7] (:0) - Named query checking : enabled
>>
>> 6914 [7] INFO NHibernate.Cfg.SettingsFactory (null) - Named query checking :
>> enabled
>> INFO [7] (:0) - building session factory
>>
>> 6959 [7] INFO NHibernate.Impl.SessionFactoryImpl (null) - building session
>> factory
>>
>> DEBUG [7] (:0) - Session factory constructed with filter configurations : {}
>>
>> 6962 [7] DEBUG NHibernate.Impl.SessionFactoryImpl (null) - Session factory
>> constructed with filter configurations : {}
>> DEBUG [7] (:0) - instantiating session factory with properties:
>> {'use_reflection_optimizer'='True', 'session_factory_name'='NHibernate.Test',
>> 'connection.connection_string_name'='DevDb',
>> 'dialect'='NHibernate.Dialect.MsSql2000Dialect',
>> 'current_session_context_class'='NHibernate.Context.ThreadStaticSessionContext',
>>
>> 'proxyfactory.factory_class'='NHibernate.ByteCode.LinFu.ProxyFactoryFactory,
>> NHibernate.ByteCode.LinFu', 'generate_statistics'='true',
>> 'query.substitutions'='true=1;false=0',
>> 'connection.provider'='NHibernate.Connection.DriverConnectionProvider',
>> 'connection.driver_class'='NHibernate.Driver.SqlClientDriver',
>> 'adonet.batch_size'='20'}
>> 6965 [7] DEBUG NHibernate.Impl.SessionFactoryImpl (null) - instantiating
>> session factory with properties: {'use_reflection_optimizer'='True',
>> 'session_factory_name'='NHibernate.Test',
>> 'connection.connection_string_name'='DevDb',
>> 'dialect'='NHibernate.Dialect.MsSql2000Dialect',
>> 'current_session_context_class'='NHibernate.Conte
>> xt.ThreadStaticSessionContext',
>> 'proxyfactory.factory_class'='NHibernate.ByteCode.LinFu.ProxyFactoryFactory,
>> NHibernate.ByteCode.LinFu', 'generate_statistics'='true',
>> 'query.substitutions'='true=1;false=0',
>> 'connection.provider'='NHibernate.Connection.DriverConnectionProvider',
>> 'connection.driver_class'='NHibernate.Driver.SqlClientDriver',
>> 'adonet.batch_size'='20'}
>> DEBUG [7] (:0) - Obtaining IDbConnection from Driver
>>
>> 6972 [7] DEBUG NHibernate.Connection.DriverConnectionProvider (null) -
>> Obtaining IDbConnection from Driver
>> DEBUG [7] (:0) - Closing connection
>>
>> 8576 [7] DEBUG NHibernate.Connection.ConnectionProvider (null) - Closing
>> connection
>> DEBUG [7] (:0) - initializing class SessionFactoryObjectFactory
>> 8612 [7] DEBUG NH
>> ibernate.Impl.SessionFactoryObjectFactory (null) - initializing class
>> SessionFactoryObjectFactory
>>
>> DEBUG [7] (:0) - registered:
>> e7d5b17133464f05b614dd72fdfdff2f(NHibernate.Test)
>>
>> 8615 [7] DEBUG NHibernate.Impl.SessionFactoryObjectFactory (null) -
>> registered: e7d5b17133464f05b614dd72fdfdff2f(NHibernate.Test)
>> INFO [7] (:0) - Factory name:NHibernate.Test
>>
>> 8617 [7] INFO NHibernate.Impl.SessionFactoryObjectFactory (null) - Factory
>> name:NHibernate.Test
>> DEBUG [7] (:0) - Instantiated session factory
>>
>> 8618 [7] DEBUG NHibernate.Impl.SessionFactoryImpl (null) - Instantiated
>> session factory
>> DEBUG [7] (:0) - Checking 0 named HQL queries
>> 8635 [7] DEBUG NHibernate.Impl.SessionF
>> actoryImpl (null) - Checking 0 named HQL queries
>> DEBUG [7] (:0) - Checking 1 named SQL queries
>>
>> 8637 [7] DEBUG NHibernate.Impl.SessionFactoryImpl (null) - Checking 1 named
>> SQL queries
>> DEBUG [7] (:0) - Checking named SQL query: GetDTO
>>
>> 8643 [7] DEBUG NHibernate.Impl.SessionFactoryImpl (null) - Checking named
>> SQL query: GetDTO
>>
>> DEBUG [7] (:0) - unable to locate native-sql query plan in cache; generating
>> (exec dbo.SP)
>>
>> 8657 [7] DEBUG NHibernate.Engine.Query.QueryPlanCache (null) - unable to
>> locate native-sql query plan in cache; generating (exec dbo.SP)
>> DEBUG [7] (:0)&nbs p;- starting processing of sql query [exec dbo.SP]
>>
>> 8663 [7] DEBUG NHibernate.Loader.Custom.Sql.SQLCustomQuery (null) - starting
>> processing of sql query [exec dbo.SP]
>> ERROR [7] (:0) - Error in named query: GetDTO
>> NHibernate.MappingException: No persister for: Muestra.Commons.DTO.MyDTO
>>
>> at NHibernate.Impl.SessionFactoryImpl.GetEntityPersister(String
>> entityName)
>>
>> at
>> NHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor.GetSQLLoadable(String
>> entityName)
>>
>> at
>> NHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor.ProcessRootReturn(NativeSQLQueryRootReturn
>> rootReturn)
>>
>> at
>> NHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor.ProcessReturn(INativeSQLQueryReturn
>> rtn)
>>   ;at NHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor.Process()
>>
>> at
>> NHibernate.Loader.Custom.Sql.SQLCustomQuery..ctor(INativeSQLQueryReturn[]
>> queryReturns, String sqlQuery, ICollection`1 additionalQuerySpaces,
>> ISessionFactoryImplementor factory)
>>
>> at
>> NHibernate.Engine.Query.NativeSQLQueryPlan..ctor(NativeSQLQuerySpecification
>> specification, ISessionFactoryImplementor factory)
>>
>> at
>> NHibernate.Engine.Query.QueryPlanCache.GetNativeSQLQueryPlan(NativeSQLQuerySpecification
>> spec)
>> at NHibernate.Impl.SessionFactoryImpl.CheckNamedQueries()
>>
>> 8673 [7] ERROR NHibernate.Impl.SessionFactoryImpl (null) - Error in named
>> query: GetDTO
>> NHibernate.MappingException: No persister for: Muestra.Commons.DTO.MyDTO
>> at NH
>> ibernate.Impl.SessionFactoryImpl.GetEntityPersister(String entityName)
>>
>> at
>> NHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor.GetSQLLoadable(String
>> entityName)
>>
>> at
>> NHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor.ProcessRootReturn(NativeSQLQueryRootReturn
>> rootReturn)
>>
>> at
>> NHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor.ProcessReturn(INativeSQLQueryReturn
>> rtn)
>> at NHibernate.Loader.Custom.Sql.SQLQueryReturnProcessor.Process()
>>
>> at
>> NHibernate.Loader.Custom.Sql.SQLCustomQuery..ctor(INativeSQLQueryReturn[]
>> queryReturns, String sqlQuery, ICollection`1 additionalQuerySpaces,
>> ISessionFactoryImplementor factory)
>> at
>> NHibernate.Engine.Query.NativeSQLQueryPlan..ctor(NativeSQLQuerySpecification
>> specification, ISessionFactoryImplementor fac
>> tory)
>>
>> at
>> NHibernate.Engine.Query.QueryPlanCache.GetNativeSQLQueryPlan(NativeSQLQuerySpecification
>> spec)
>> at NHibernate.Impl.SessionFactoryImpl.CheckNamedQueries()
>> NHibernate.HibernateException : Errors in named queries: {GetDTO}
>> at NHibernate.Impl.SessionFactoryImpl..ctor(Configuration cfg, IMapping
>> mapping, Settings settings, EventListeners listeners)
>> at NHibernate.Cfg.Configuration.BuildSessionFactory()
>> at Muestra.Commons.Infrastructure.UoW.Initialize(Configuration
>> _configuration) in UoW.cs: line 33
>> at Muestra.Commons.Infrastructure.UoW.Initialize() in UoW.cs: line 26
>> at Muestra.Test.NHibernateFixture.Can_Compile() in
>> NHibernateFixture.cs: line 15
>>
>> --
>> Para escribir al Grupo, hágalo a esta dirección:
>> [email protected]
>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>
>
> --
> Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>
> --
> Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>
--
Para escribir al Grupo, hágalo a esta dirección:
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano