Need help with Hibernate? Read this first:
http://www.hibernate.org/ForumMailingli ... AskForHelp
Hibernate version:NHibernate 1.2.0.4
Mapping documents:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-access="property">
<class name ="NHibernateTest.PropertyRecord, NHibernateTest" table="OPR_Logi_Documents" where="LastUpdated_Date >= '5/17/2007'">
<id name ="Id" column="INSTRUMENT_NUMBER">
<generator class ="assigned" />
</id>
<property name ="DocumentType" column="Document_Type"/>
<property name ="Book" column="book"/>
<property name ="Page" column="page"/>
<property name ="MicrofilmCode" column="Multi_Seq"/>
<property name ="ClerkRecorderUnparsedName" column="SCANNED_BY"/>
<property name ="CreateDate" column="DOCUMENT_DATE"/>
<property name ="ModifiedDate" column="LASTUPDATED_BY"/>
<property name ="SequenceNumber" column="Instrument_Number"/>
<property name ="OtherDocumentType" column="Document_Type"/>
<property name="OtherDescription" column="Scanned_By"/>
<bag name="Grantors" table="OPR_Parties" where="Name_Type = 'R'" cascade="none" fetch="subselect" lazy="false" inverse="true">
<key column="Instrument_Number"/>
<one-to-many class="NHibernateTest.Grantor, NHibernateTest"/>
</bag>
<bag name="Grantees" table="OPR_Parties" where="Name_Type = 'E'" cascade="none" fetch="subselect" lazy="false" inverse="true">
<key column="Instrument_Number"/>
<one-to-many class="NHibernateTest.Grantee, NHibernateTest"/>
<filter name="E only" condition="Name_Type = 'E'"/>
</bag>
</class>
<class name ="NHibernateTest.Grantor, NHibernateTest" table="OPR_Parties" where="Name_Type = 'R'">
<id name="Id" column="Instrument_Number" access="nosetter.camelcase" unsaved-value="0">
<generator class="assigned"/>
</id>
<property name ="StreetAddress" column="Address1"/>
<property name="FirstName" column="FirstName"/>
<property name="LastName" column="LastName"/>
<property name="UnparsedName" column="Combined_Name"/>
<property name="NonPersonEntityIndicator" column="PC_Flag"/>
</class>
<class name ="NHibernateTest.Grantee, NHibernateTest" table="OPR_Parties" where="Name_Type = 'E'">
<id name="Id" column="Instrument_Number" access="nosetter.camelcase" unsaved-value="0">
<generator class="identity"/>
</id>
<property name ="StreetAddress" column="Address1"/>
<property name="FirstName" column="FirstName"/>
<property name="LastName" column="LastName"/>
<property name="UnparsedName" column="Combined_Name"/>
<property name="NonPersonEntityIndicator" column="PC_Flag"/>
</class>
</hibernate-mapping>
Code between sessionFactory.openSession() and session.close():
ISession session = null;
//returns open session
session = Program.NHSession;
IQuery query = session.CreateQuery("FROM PropertyRecord");
IList<PropertyRecord> records = query.List<PropertyRecord>();
session.Close();
Full stack trace of any exception that occurs: NO EXCEPTIONS
Name and version of the database you are using: SQL Server 2005
The generated SQL (show_sql=true):
SELECT grantors0_.Instrument_Number as Instrument1___1_, grantors0_.Instrument_Number as Instrument1_1_, grantors0_.Instrument_Number as Instrument1_1_0_,
grantors0_.Address1 as Address2_1_0_, grantors0_.FirstName as FirstName1_0_, grantors0_.LastName as LastName1_0_, grantors0_.Combined_Name as
Combined5_1_0_, grantors0_.PC_Flag as PC6_1_0_ FROM OPR_Parties grantors0_ WHERE grantors0_.Name_Type = 'R' and grantors0_.Instrument_Number in (select
propertyre0_.INSTRUMENT_NUMBER from OPR_Logi_Documents propertyre0_ where propertyre0_.LastUpdated_Date >= '5/17/2007') ORDER BY grantors0_.FirstName
I have a parent-child relation. The parent is the PropertyRecord and the children are the Grantees and Grantors. When I run this program I get back the correct number of children for each parent; however, each time I get a record that has multiple Grantors or Grantees the records are the same. For example if I have a PropertyRecord with 1 Grantee and 2 Grantors, both of the Grantors are the exact same record. I have searched around and tried a few things but so far no luck. Also I am not sure why the sql code is selecting the Instrument_Number multiple times, but this is not a high priority.
Thank you so much