<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)&nbsp
> ;- 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)
>   &nbsp ;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

Responder a