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