Hi everyone,
I'm having a hard time configuring NHibernate Validator (NHV). For
some reason it doesn't see any of my mapped classes. NHibernate is
fully working, I changed all the mappings from *.nhv.xml to *.hbm.xml
and it works perfectly. However I want to use the NHV because of the
validation properties.
This is my config file:
------------------------------------------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!-- Configuration Sections In This File -->
<configSections>
<!-- NHibernate Section -->
<section
name="hibernate-configuration"
type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"
/>
<section
name="nhv-configuration"
type="NHibernate.Validator.Cfg.ConfigurationSectionHandler,
NHibernate.Validator" />
<!-- Log4Net Section -->
<section
name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,
log4net"
/>
</configSections>
<nhv-configuration xmlns='urn:nhv-configuration-1.0'>
<property name='apply_to_ddl'>true</property>
<property name='autoregister_listeners'>true</property>
<property name='default_validator_mode'>UseExternal</property>
<property
name='message_interpolator_class'>NHibernate.Validator.Interpolator.DefaultMessageInterpolator,
NHibernate.Validator, Version=1.2.0.3001, Culture=neutral,
PublicKeyToken=70154e18752585bd</property>
<mapping assembly="MBMS.DAL" />
</nhv-configuration>
<!-- NHibernate Configuration -->
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory name="MBMS.DAL">
<property name="connection.provider">
NHibernate.Connection.DriverConnectionProvider
</property>
<property name="dialect">
NHibernate.Dialect.MsSql2005Dialect
</property>
<property name="connection.driver_class">
NHibernate.Driver.SqlClientDriver
</property>
<property name="connection.connection_string">
Data Source=(local)\SQLExpress;Initial Catalog=MBMS;Integrated
Security=True;Pooling=False
</property>
<property name="proxyfactory.factory_class">
NHibernate.ByteCode.Castle.ProxyFactoryFactory,
NHibernate.ByteCode.Castle
</property>
<mapping assembly="MBMS.DAL"/>
</session-factory>
</hibernate-configuration>
<!-- Log4Net Configuration -->
<log4net>
<!-- Define an output appender (where the logs can go) -->
<appender name="LogFileAppender"
type="log4net.Appender.FileAppender, log4net">
<param name="File" value="log.txt" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout, log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x]
<%X{auth}> - %m%n" />
</layout>
</appender>
<!-- Note: Priority level can be ALL/DEBUG/INFO/WARN/ERROR/FATAL/
OFF -->
<!-- Setup the root category, set the default priority level and
add the appender(s) (where the logs will go) -->
<root>
<priority value="WARN" />
<appender-ref ref="LogFileAppender" />
</root>
</log4net>
<appSettings>
<add key="NUnitTestConfigValue" value="abc" />
</appSettings>
</configuration>
------------------------------------------------------------------------------------------------------------------------------------------------------------------
And this is the code I use to configure NHV:
------------------------------------------------------------------------------------------------------------------------------------------------------------------
Configuration cfg = new Configuration();
cfg.Configure();
ValidatorEngine engine = new ValidatorEngine();
engine.Configure();
// Create session factory from configuration object
sessionFactory = cfg.BuildSessionFactory();
------------------------------------------------------------------------------------------------------------------------------------------------------------------
Now when I check "cfg.ClassMappings.Count" it is always 0 when I use
the *.nhv.xml mapping files. The *.hmb.xml files work perfectly!
This is one mapping file:
------------------------------------------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0"?>
<nhv-mapping xmlns="urn:nhibernate-validator-1.0"
namespace="MBMS.DAL.Types" assembly="MBMS.DAL">
<class name="Person" table="Persons" lazy="false">
<!-- Identity mapping -->
<id name="ID">
<column name="ID" />
<generator class="identity" />
</id>
<!-- Simple mappings -->
<property name="FirstName">
<not-empty/>
<not-null/>
</property>
<property name="MiddleName">
<not-null/>
</property>
<property name="LastName">
<not-empty/>
<not-null/>
</property>
</class>
</nhv-mapping>
------------------------------------------------------------------------------------------------------------------------------------------------------------------
I have spend 4 hours already on just this issue and I'm running out of
idea's. What I don't understand is this that you have 2 configurations
right? The NHibernate configuration and the NHV configuration. If I
configure NHibernate it searches for *.hbm.xml files while the NHV
searches for *.nhv.xml files? So in that case
"cfg.ClassMappings.Count" would never ever be greater than zero right?
I don't get any errors when I compile and run my code but I also don't
retrieve any Persons in my database (while there are many in it).
Again I do retrieve every person when I change the *.nhv.xml files to
*.hbm.xml. Every XML file is set to "Embedded Resource".
I hope someone can help me out!
--
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/nhusers?hl=en.