Only for a curiosity.Do you are writing the mapping or you are using some generator ?
2008/10/20 joe <[EMAIL PROTECTED]> > > Thanks for helping. > > I have a table Customer and a table State. > Each customer has an optional FKStateId. > My Customer class has a field of type State. > > Here are the 2 mappings file: > > CUSTOMER MAPPING: > <?xml version="1.0" encoding="utf-8" ?> > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" > assembly="Syple.Velocity.Data" namespace="Syple.Velocity.Data.Domain"> > <class name="Customer" table="customer"> > <id name="ID" type="int" column="PKCustomerId"> > <generator class="identity"/> > </id> > <property name="FirstName" column="FirstName" type="System.String" > not-null="false" /> > <property name="MiddleName" column="MiddleName" > type="System.String" not-null="false" /> > <property name="LastName" column="LastName" type="System.String" > not-null="false" /> > <property name="Title" column="Title" type="System.String" not- > null="false" /> > <property name="BusinessPhone" column="BusinessPhone" > type="System.String" not-null="false" /> > <property name="HomePhone" column="HomePhone" type="System.String" > not-null="false" /> > <property name="MobilePhone" column="MobilePhone" > type="System.String" not-null="false" /> > <property name="EmailAddress" column="EmailAddress" > type="System.String" not-null="false" /> > <property name="UnitNumber" column="UnitNumber" > type="System.String" not-null="false" /> > <property name="StreetNumber" column="StreetNumber" > type="System.String" not-null="false" /> > <property name="StreetName" column="StreetName" > type="System.String" not-null="false" /> > <property name="Suburb" column="Suburb" type="System.String" not- > null="false" /> > <property name="Postcode" column="Postcode" type="System.String" > not-null="false" /> > <property name="CurrentVehicle" column="CurrentVehicle" > type="System.String" not-null="false" /> > <property name="ReceiveMarketing" column="ReceiveMarketing" > type="System.Boolean" not-null="true" /> > <property name="IsCompany" column="IsCompany" > type="System.Boolean" not-null="true" /> > <many-to-one name="State" column="FKStateId" class="State" /> > > <one-to-one name="BusinessCustomer" class="BusinessCustomer" > cascade="all-delete-orphan" /> > > <bag name="Enquiries" table="enquiry" inverse="true" lazy="true" > cascade="save-update"> > <key column="FKCustomerId" /> > <one-to-many class="Enquiry"/> > </bag> > <bag name="SalesActivities" table="salesactivity" inverse="true" > lazy="true" > > <key column="FKCustomerId" /> > <one-to-many class="SalesActivity"/> > </bag> > <bag name="Notes" table="customernote" inverse="true" lazy="true" > > > <key column="FKCustomerId" /> > <one-to-many class="CustomerNote"/> > </bag> > </class> > </hibernate-mapping> > > STATE MAPPING: > <?xml version="1.0" encoding="utf-8" ?> > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" > assembly="Syple.Velocity.Data" namespace="Syple.Velocity.Data.Domain"> > <class name="State" table="state" > > <id name="ID" type="int" column="PKStateId"> > <generator class="assigned"/> > </id> > <property name="StateName" column="StateName" > type="System.String" not-null="true" /> > <bag name="Customers" table="customer" inverse="true" > lazy="true" > > <key column="FKStateId" /> > <one-to-many class="Customer"/> > </bag> > <bag name="BusinessCustomers" table="businesscustomer" > inverse="true" lazy="true" > > <key column="FKStateId" /> > <one-to-many class="BusinessCustomer"/> > </bag> > </class> > </hibernate-mapping> > > > On Oct 20, 9:13 am, "Will Shaver" <[EMAIL PROTECTED]> wrote: > > Perhaps a bit more of the data model / mappings would be helpful here... > > > > On Sun, Oct 19, 2008 at 3:09 PM, joe <[EMAIL PROTECTED]> wrote: > > > > > Same result. > > > > > On Oct 18, 2:03 am, "Will Shaver" <[EMAIL PROTECTED]> wrote: > > >> Try .SetFetchMode(relation, FetchMode.Join); > > >> instead of Eager. > > > > >> On Thu, Oct 16, 2008 at 8:25 PM, joe <[EMAIL PROTECTED]> wrote: > > > > >> > Hi. > > > > >> > I am trying to use the criteria API to eager fetch a many to one > > >> > property. > > > > >> > ICriteria criteria = > > >> > > NHibernateSession.CreateCriteria(typeof(Customer)).Add(Expression.Eq("ID", > > >> > id)); > > >> > criteria.SetFetchMode("State", FetchMode.Eager); > > >> > return criteria.UniqueResult<Customer>(); > > > > >> > The generated sql does do the join in order to retrieve the "State" > > >> > association property, however, my customer object's state property > is > > >> > not initialized (it is not null but only the id is set). > > > > >> > Am i missing something ? > > > -- Fabio Maulo --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to nhusers@googlegroups.com 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 -~----------~----~----~----~------~----~------~--~---