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) - Using 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) - 
proxyfactory.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.SqlClientDriver

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) - 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 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.Connection.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 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: 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.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'}

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 NHibernate.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.SessionFactoryImpl (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) - 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 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()

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

Responder a