Hoang Tang
unread,Nov 25, 2010, 12:43:18 AM11/25/10Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to nhu...@googlegroups.com
I have three User, Invoice and Enrollment entities
One Invoice can have many enrollments, One user can have many invoices/enrollment
so I am doing something very basic is getting a list of all Enrollments like this:
session.CreateQuery("From Enrollment").List<Enrollment>();
watching inside NHProf, I see that it's generate a select for every Invoice as well.
I am using Nhibernate 3.00.2002
Bellow is all the mapping necessary to reproduce the problem.
For Enrollment
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-access="property" auto-import="true" default-cascade="none" default-lazy="true">
<class xmlns="urn:nhibernate-mapping-2.2" mutable="true" name="Domain.Enrollment, Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" table="Enrollments">
<id access="backfield" name="Id" type="System.Guid, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" unsaved-value="00000000-0000-0000-0000-000000000000">
<column name="Id" />
<generator class="guid.comb" />
</id>
<property name="IsFinished" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<column name="IsFinished" />
</property>
<many-to-one cascade="save-update" class="Domain.User, Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="User" not-found="ignore">
<column name="UserFk" />
</many-to-one>
<many-to-one cascade="save-update" class="Domain.Invoice, Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="Invoice" not-found="ignore">
<column name="InvoiceFk" />
</many-to-one>
</class>
</hibernate-mapping>
for Invoice
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-access="property" auto-import="true" default-cascade="none" default-lazy="true">
<class xmlns="urn:nhibernate-mapping-2.2" mutable="true" name="Domain.Invoice, Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" table="Invoices">
<id access="backfield" name="Id" type="System.Guid, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" unsaved-value="00000000-0000-0000-0000-000000000000">
<column name="Id" />
<generator class="guid.comb" />
</id>
<bag batch-size="30" cascade="save-update" inverse="true" name="Enrollments" mutable="true">
<key>
<column name="InvoiceFk" />
</key>
<one-to-many class="Domain.Enrollment, Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</bag>
<property name="InvoiceNumber" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<column name="InvoiceNumber" />
</property>
<many-to-one cascade="save-update" class="Domain.User, Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="User" not-found="ignore">
<column name="UserFk" />
</many-to-one>
</class>
</hibernate-mapping>
for user
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-access="property" auto-import="true" default-cascade="none" default-lazy="true">
<class xmlns="urn:nhibernate-mapping-2.2" mutable="true" name="Domain.User, Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" table="Users">
<id access="backfield" name="Id" type="System.Guid, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" unsaved-value="00000000-0000-0000-0000-000000000000">
<column name="Id" />
<generator class="guid.comb" />
</id>
<bag batch-size="30" cascade="save-update" inverse="true" name="Enrollments" mutable="true">
<key>
<column name="UserFk" />
</key>
<one-to-many class="Domain.Enrollment, Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</bag>
<bag batch-size="30" cascade="save-update" inverse="true" name="Invoives" mutable="true">
<key>
<column name="UserFk" />
</key>
<one-to-many class="Domain.Invoice, Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
</bag>
<property name="UserName" type="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<column name="UserName" />
</property>
<property name="Password" type="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<column name="Password" />
</property>
</class>
</hibernate-mapping>