Hi;

 I have the following mapping :
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  <!--Build: with [EMAIL PROTECTED] Nhibernate template-->
  <class
name="Nexfi.Tracker.DAL.Entities.Counterparties,Nexfi.Tracker.DAL"
table="Counterparties" lazy="false" schema="dbo">
    <id name="CounterpartyId" column="Counterparty_ID" type="int">
      <generator class="native" />
    </id>
    <property name="CounterpartyCode" column="CounterpartyCode"
type="string" not-null="true" />
    <property name="Counterparty" column="Counterparty" type="string" /
>
    <property name="CounterpartyName" column="CounterpartyName"
type="string" />
    <many-to-one name="CounterpartyStatus"
column="CounterpartyStatus_ID" cascade="save-update" />
    <property name="Department" column="Department" type="string" />
    <property name="Adr1" column="Adr1" type="string" />
    <property name="Adr2" column="Adr2" type="string" />
    <property name="City" column="City" type="string" />
    <property name="Country" column="Country" type="string" />
    <property name="CountryId" column="Country_ID" type="int" />
    <property name="PhoneNumber" column="PhoneNumber" type="string" />
    <property name="TelexNumber" column="TelexNumber" type="string" />
    <property name="FaxNumber" column="FaxNumber" type="string" />
    <property name="Email" column="Email" type="string" />
    <property name="BicCode" column="BICCode" type="string" />
    <many-to-one name="Langues" column="langue_ID" cascade="save-
update" />
    <property name="CounterpartyRatioCook"
column="CounterpartyRatioCook" type="float" />
    <property name="EquityCapital" column="EquityCapital" type="int" /
>
    <property name="EquityCurrencyId" column="EquityCurrency_ID"
type="int" />
    <property name="RaisingCredit" column="RaisingCredit"
type="Boolean" />
    <property name="IsBeneficiary" column="IsBeneficiary"
type="Boolean" />
    <property name="IsBroker" column="IsBroker" type="Boolean" />
    <property name="IsHolder" column="IsHolder" type="Boolean" />
    <property name="IsDepository" column="IsDepository"
type="Boolean" />
    <property name="IsClient" column="IsClient" type="Boolean" />
    <property name="IsAuditor" column="IsAuditor" type="Boolean" />
    <property name="IsValuator" column="IsValuator" type="Boolean" />
    <many-to-one name="CounterpartyCategories"
column="CounterpartyCategory_ID" cascade="save-update" />
    <many-to-one name="Groups" column="Group_ID" cascade="save-
update" />
    <property name="TransactionCounter" column="TransactionCounter"
type="int" />
    <property name="Comments" column="Comments" type="string" />
    <property name="IsGlobalCorrespondent"
column="IsGlobalCorrespondent" type="Boolean" />
    <property name="IsLocked" column="IsLocked" type="Boolean" />
    <many-to-one name="GroupLinks" column="GroupLink_ID" cascade="save-
update" />
    <property name="IsClearingHouse" column="IsClearingHouse"
type="Boolean" />
    <property name="IsAdministrator" column="IsAdministrator"
type="Boolean" />
    <property name="IsPromoter" column="IsPromoter" type="Boolean" />
    <property name="IsDistributor" column="IsDistributor"
type="Boolean" />
    <property name="Isam" column="IsAM" type="Boolean" />
    <many-to-one name="InvestorProfiles" column="InvestorProfile_ID"
cascade="save-update" />
    <bag name="Clearers" inverse="true" lazy="true" cascade="delete">
      <key column="ClearingHouse_ID" />
      <one-to-many
class="Nexfi.Tracker.DAL.Entities.Clearers,Nexfi.Tracker.DAL" />
    </bag>
    <bag name="CorrespondentsFor" inverse="true" lazy="true"
cascade="delete">
      <key column="Correspondent_ID" />
      <one-to-many
class="Nexfi.Tracker.DAL.Entities.Correspondents,Nexfi.Tracker.DAL" />
    </bag>
    <bag name="CorrespondentOf" inverse="true" lazy="true"
cascade="delete">
      <key column="Counterparty_ID" />
      <one-to-many
class="Nexfi.Tracker.DAL.Entities.Correspondents,Nexfi.Tracker.DAL" />
    </bag>
    <bag name="CounterpartyAliases" inverse="true" lazy="true"
cascade="all">
      <key column="Counterparty_ID" />
      <one-to-many
class="Nexfi.Tracker.DAL.Entities.CounterpartyAliases,Nexfi.Tracker.DAL" /
>
    </bag>
    <bag name="CounterpartyClassifications" inverse="true" lazy="true"
cascade="delete">
      <key column="Counterparty_ID" />
      <one-to-many
class="Nexfi.Tracker.DAL.Entities.CounterpartyClassifications,Nexfi.Tracker.DAL"
 /
>
    </bag>
    <bag name="InstrumentTypes" inverse="false"
table="CounterpartyIssuerArea" lazy="true" cascade="delete">
      <key column="Counterparty_ID" />
      <many-to-many
class="Nexfi.Tracker.DAL.Entities.InstrumentTypes,Nexfi.Tracker.DAL">
        <column name="InstrumentType_ID" />
      </many-to-many>
    </bag>
    <bag name="CounterpartyParticipations" inverse="true" lazy="true"
cascade="delete">
      <key column="Counterparty_ID" />
      <one-to-many
class="Nexfi.Tracker.DAL.Entities.CounterpartyParticipations,Nexfi.Tracker.DAL" 
/
>
    </bag>
    <bag name="CreditSpreads" inverse="true" lazy="true"
cascade="delete">
      <key column="Counterparty_ID" />
      <one-to-many
class="Nexfi.Tracker.DAL.Entities.CreditSpreads,Nexfi.Tracker.DAL" />
    </bag>
    <bag name="InvestmentPrograms" inverse="true" lazy="true"
cascade="delete">
      <key column="AMCompany_ID" />
      <one-to-many
class="Nexfi.Tracker.DAL.Entities.InvestmentPrograms,Nexfi.Tracker.DAL" /
>
    </bag>
    <bag name="Sources" inverse="true" lazy="true" cascade="delete">
      <key column="Contributor_ID" />
      <one-to-many
class="Nexfi.Tracker.DAL.Entities.Sources,Nexfi.Tracker.DAL" />
    </bag>
    <!--  <bag name="Contacts" inverse="true" lazy="true"
cascade="delete">
      <key column="Employer_ID" />
      <one-to-many
class="Nexfi.Tracker.DAL.Entities.Users,Nexfi.Tracker.DAL" />
    </bag> -->
  </class>
</hibernate-mapping>

With the following properties :
        <entry key="connection.provider"
value="NHibernate.Connection.DriverConnectionProvider"/>
        <entry key="dialect"
value="NHibernate.Dialect.MsSql2005Dialect"/>
        <entry key="connection.driver_class"
value="NHibernate.Driver.SqlClientDriver"/>
        <entry key="connection.isolation"    value="Snapshot"/>
        <!--Marked as deprecated but...-->
        <entry key="use_outer_join"          value="true"/>
        <entry key="show_sql"                value="true"/>
        <entry key="bytecode.provider"       value="lcg"/>
        <entry key="max_fetch_depth"         value="0"/>

Since we want to avoid n+1 due to circular references or recursivness;

On this bag :
 <bag name="CounterpartyAliases" inverse="true" lazy="true"
cascade="all">
      <key column="Counterparty_ID" />
      <one-to-many
class="Nexfi.Tracker.DAL.Entities.CounterpartyAliases,Nexfi.Tracker.DAL" /
>
    </bag>
For a given entities, there should be 2 CounterpartyAliases (Existing
in the databse)
And that's the result with NH 1.2


we have specific method that use ICriteria to fetch if required the
bag etc,etc..
So the method to get the list is :
session.CreateCriteria(typeof(Counterparties))
                         .Add(Expression.Eq("CounterpartyId", id))
                         .SetFetchMode("CounterpartyAliases",
FetchMode.Eager)
                          .UniqueResult<Counterparties>()) as
Counterparties;

When running this on nh 2.0, i receive duplicate CounterpartyAliases
(2x2), with parent id (CounterpartyID) setted to '0' for 2 and the 2
I'm expecting to get in the result.
When running this on nh 1.2, i receive exactly 2 aliases, so it is
what I expected.
Am I wrong with the parameters, or is this a existing bug on nh 2.0 ?

Regards,

Fred.

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to