Reputation: 510
i'm new to NHibernate 4 and i try to create a one-to-many relation between two table in DB2, the tables don't have a foreign key and i can't edit the tables. When debug the application i catch error in .saveorupdate method. The tables contains:
TLDMAIN->summary of article
TLDDETAIL->detail of article
Under the mapping of table,
TLDMAIN
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="NHibernateExample2"
namespace="NHibernateExample2.NHibernateMappings"
schema="RM2T4"
>
<class name="TLDMAIN" table="TLDMAIN">
<id name="DGINAD" column="DGINAD" type="System.String">
<generator class="assigned" />
</id>
<property name="DGSEDE" column="DGSEDE" type="System.String" />
<property name="DGZONA" column="DGZONA" type="System.String" />
<property name="DGCEOP" column="DGCEOP" type="System.String" />
<property name="DGSEDEC" column="DGSEDEC" type="System.String" />
<property name="DGZONAC" column="DGZONAC" type="System.String" />
<property name="DGCEOPC" column="DGCEOPC" type="System.String" />
<property name="DGRLAV" column="DGRLAV" type="System.String" />
<property name="DGCFDDL" column="DGCFDDL" type="System.String" />
<property name="DGCFLAV" column="DGCFLAV" type="System.String" />
<property name="DGDTDOM" column="DGDTDOM" type="System.String" />
<property name="DGTIPREGO" column="DGTIPREGO" type="System.String" />
<property name="DGDTINTER" column="DGDTINTER" type="System.String" />
<property name="DGNRATE" column="DGNRATE" type="System.Int32" />
<property name="DGIMPRATA" column="DGIMPRATA" type="System.Decimal" />
<property name="DGPRECALC" column="DGPRECALC" type="System.String" />
<property name="DGSTCORR" column="DGSTCORR" type="System.String" />
<property name="DGTIMEST" column="DGTIMEST" type="System.String" />
<property name="DGNOTE" column="DGNOTE" type="System.String" />
<bag name="periodi" table="TLDDETAIL" lazy="false">
<key column="DDINAD" />
<one-to-many class="NHibernateExample2.NHibernateMappings.TLDDETAIL" />
</bag>
</class>
</hibernate-mapping>
TLDDETAIL
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="NHibernateExample2"
namespace="NHibernateExample2.NHibernateMappings"
schema="RM2T4"
>
<class name="TLDDETAIL" table="TLDDETAIL">
<id name="DDINAD" column="DDINAD" type="System.String">
<generator class="assigned" />
</id>
<property name="DDANNO" column="DDANNO" type="System.Int32" />
<property name="DDTRIM" column="DDTRIM" type="System.Int32" />
<property name="DDPROG" column="DDPROG" type="System.Int32" />
<property name="DDORERET" column="DDORERET" type="System.Int32" />
<property name="DDTIPCAL" column="DDTIPCAL" type="System.String" />
<property name="DDRETEFF" column="DDRETEFF" type="System.Decimal" />
<property name="DDSETALL" column="DDSETALL" type="System.String" />
<property name="DDSETT1" column="DDSETT1" type="System.String" />
<property name="DDSETT2" column="DDSETT2" type="System.String" />
<property name="DDSETT3" column="DDSETT3" type="System.String" />
<property name="DDSETT4" column="DDSETT4" type="System.String" />
<property name="DDSETT5" column="DDSETT5" type="System.String" />
<property name="DDSETT6" column="DDSETT6" type="System.String" />
<property name="DDSETT7" column="DDSETT7" type="System.String" />
<property name="DDSETT8" column="DDSETT8" type="System.String" />
<property name="DDSETT9" column="DDSETT9" type="System.String" />
<property name="DDSETT10" column="DDSETT10" type="System.String" />
<property name="DDSETT11" column="DDSETT11" type="System.String" />
<property name="DDSETT12" column="DDSETT12" type="System.String" />
<property name="DDSETT13" column="DDSETT13" type="System.String" />
<property name="DDSETT14" column="DDSETT14" type="System.String" />
<property name="DDSETT15" column="DDSETT15" type="System.String" />
<property name="DDINTEGR" column="DDINTEGR" type="System.String" />
<property name="DATEPAG" column="DATEPAG" type="System.String" />
<property name="FLAGPAG" column="FLAGPAG" type="System.String" />
<property name="DDPARTITA" column="DDPARTITA" type="System.String"/>
<property name="DDPROGPART" column="DDPROGPART" type="System.String"/>
</class>
</hibernate-mapping>
The error it's No persister for: NHibernateExample2.NHibernateMappings.TLDMAIN
In google i found the cause of this error, it's error in mapping but i don't have found this.
Thank's for help!!!
Upvotes: 0
Views: 131
Reputation: 111870
That error doesn't seems to be connected to problems with the foreign keys. It seems to be that the NHibernate can't find the XML files. The "common" problems are normally three:
<session-factory>
section (normally app.config/web.config), there should be a <mapping assembly="NHibernateExample2"/>
(or whatever the assembly with the mappings is named)configuration.Configure()
(because doing NHibernate.Cfg.Configuration configuration = new NHibernate.Cfg.Configuration();
isn't enough, you have to do configuration.Configure()
)Upvotes: 1