You can't update the inverse end of a bidirectional relationship.  See
the docs:

http://www.hibernate.org/hib_docs/nhibernate/html/collections.html

"Changes made only to the inverse end of the association are not
persisted. This means that NHibernate has two representations in
memory for every bidirectional association, one link from A to B and
another link from B to A. This is easier to understand if you think
about the .NET object model and how we create a many-to-many
relationship in C#:"


On Sep 13, 11:36 am, codemonkey <[EMAIL PROTECTED]> wrote:
> No worries, mappings below:
>
> <?xml version="1.0" encoding="utf-8"?>
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
>   <class name="A" table="A" lazy="false">
>     <id name="Id" column="ID" type="int">
>       <generator class="native" />
>     </id>
>     <property name="Name" column="Name" type="string" />
>     <set name="BItems" inverse="true" lazy="true" cascade="delete-
> orphan">
>       <key column="AId" />
>       <one-to-many class="B" />
>     </set>
>   </class>
> </hibernate-mapping>
>
> <?xml version="1.0" encoding="utf-8"?>
> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
>   <class name="B" table="B" lazy="false">
>     <id name="Id" column="ID" type="int">
>       <generator class="native" />
>     </id>
>         <property name="Name" column="Name" type="string" />
>     <many-to-one name="A" column="AId" cascade="save-update" not-
> null="true" />
>   </class>
> </hibernate-mapping>
>
> Thanks
> Stefan
>
> On Sep 13, 11:24 pm, "Dario Quintana" <[EMAIL PROTECTED]>
> wrote:
>
> > Hello
> > Could you please add the mappings ?
>
> > On Sat, Sep 13, 2008 at 10:34 AM, codemonkey <[EMAIL PROTECTED]>wrote:
>
> > > Another question, might be a bit silly but my brain is fried today,
> > > Say I have 2 tables A and B, with a one to many between them:
>
> > > A
> > > --
> > > Id
> > > Name
>
> > > B
> > > ---
> > > Id
> > > AId
> > > Name
>
> > > If I do something like so:
>
> > > A a  = new A();
> > > a.Id = 1;
> > > a.Name = "name";
> > > a.BItems = null;
>
> > > // THEN UPDATE a
>
> > > Even though the collection is set to null, the children still remain,
> > > am I missing something here? If I were to load A then call
> > > a.BItems.Clear() and update they are removed as I expect.
>
> > > Cheers
>
> > --
> > Dario Quintanahttp://darioquintana.com.ar
--~--~---------~--~----~------------~-------~--~----~
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