Vels, Please look at https://www.hibernate.org/359.html
section "NHibernate is deleting my entire collection and recreating it instead of updating the table." maybe thi will be also interesting: http://nhforge.org/blogs/nhibernate/archive/2009/04/23/nhibernate-tidbit-using-lt-set-gt-without-referencing-iesi-collections.aspx Bartosz Pierzchlewicz On 8 Kwi, 07:57, Vels <[email protected]> wrote: > inmany to manycollection inserting a new child, > its deletingallexisting rows and re-generatingallwith new id > > how to avoid this ? > > On Apr 7, 5:57 pm, Vels <[email protected]> wrote: > > > > > Hi.. > > if i useall-delete-orphans and > > > MasterItemList.remove(Masteritem1) > > :session.update(MasterCategory) > > :trans.Commit() > > its removing from tblCategories and tblCategorisedItems too. i want to > > remove only from tblCategorisedItems > > > (all-delete-orphans working with one-to-many perfectly) > > > So i changed little my Mapping information as : > > > <bag name="MasterItemList" table="tblCategorisedItems" lazy="true" > > collection-type="Collection.ObservableList`1 > > [[emPowerBO.MasterItem, emPowerBO]], Collection"> > > <key column="CategoryCode"/> > > <many-to-manycolumn="MasterItemCode" > > class="emPowerBO.MasterItem,emPowerBO" outer-join="true"/> > > </bag> > > > Now remove child working fine, but if i insert New MasterItem to my > > existing MasterItemList, in backend its re-creatingallexisting rows > > of the MasterItemList with new ID for particular parent > > (MasterCategory) > > > am i clear ? > > > On Apr 6, 7:19 pm, James Crowley <[email protected]> wrote: > > > > cascade toallwill remove themall, only if youdeletethe root entity. > > > > if you want the collection items to be removed, while the root entity > > > remains, it needs to beall-delete-orphans. > > > > hope that helps > > > > 2009/4/6 Vels <[email protected]> > > > > > i changed cascade="all" ... but still same problem > > > > > <bag name="MasterItemList" table="tblCategorisedItems" > > > > cascade="all" > > > > collection-type="Collection.ObservableList`1 > > > > [[emPowerBO.MasterItem, emPowerBO]], Collection"> > > > > <key column="CategoryCode"/> > > > > <many-to-manycolumn="MasterItemCode" > > > > class="emPowerBO.MasterItem,emPowerBO"/> > > > > </bag> > > > > > On Apr 6, 5:19 pm, James Crowley <[email protected]> wrote: > > > > > You might want to check your cascade options? If you want orphaned > > > > entities > > > > > to be removed, you need to set it toall-delete-orphans... but make > > > > > sure > > > > you > > > > > understand the implcations of this. > > > > > > Seehttp:// > > > > ayende.com/Blog/archive/2006/12/02/NHibernateCascadesTheDiffer... > > > > > more info. > > > > > > Hope that helps > > > > > > James > > > > > > 2009/4/6 Vels <[email protected]> > > > > > > > Hi... > > > > > > > I am working with VB.Net 2008, SQL 2005, NH2.0.1 > > > > > > > followings are my mapping information: > > > > > > > <?xml version="1.0" encoding="utf-8" ?> > > > > > > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" > > > > > > namespace="emPowerBO" assembly="emPowerBO" > > > > > > schema="emPowerMasterV4.dbo"> > > > > > > <class name="MasterCategory" proxy="MasterCategory" > > > > > > table="tblCategories" lazy="true" > > > > > > discriminator-value="MasterCategory"> > > > > > > <id name="CategoryCode" column="CategoryCode" type="Int64" > > > > > > unsaved- > > > > > > value="0"> > > > > > > <generator class="native"/> > > > > > > </id> > > > > > > <property column="CategoryName" type="string" name="CategoryName" > > > > > > not-null="true" length="255"/> > > > > > > > <bag name="MasterItemList" table="tblCategorisedItems" > > > > > > cascade="none" > > > > > > collection-type="Collection.ObservableList`1 > > > > > > [[emPowerBO.MasterItem, emPowerBO]], Collection"> > > > > > > <key column="CategoryCode"/> > > > > > > <many-to-manycolumn="MasterItemCode" > > > > > > class="emPowerBO.MasterItem,emPowerBO"/> > > > > > > </bag> > > > > > > > </class> > > > > > > </hibernate-mapping> > > > > > > > test 1 :MasterItemList.add(Masteritem1) > > > > > > :session.update(MasterCategory) > > > > > > :trans.Commit() > > > > > > works fine :) Masteritem1 added to my collection and table > > > > > > too > > > > > > > test 2 :MasterItemList.add(Masteritem2) > > > > > > :session.update(MasterCategory) > > > > > > :trans.Commit() > > > > > > :Masteritem2 added to my collection and table too > > > > > > > :MasterItemList.Remove(Masteritem1) > > > > > > :session.update(MasterCategory) > > > > > > :trans.Commit() > > > > > > :Masteritem1 removed from my collection but not deleted > > > > > > from > > > > > > my table > > > > > > > test 3 :MasterItemList.remove(Masteritem1) > > > > > > :session.update(MasterCategory) > > > > > > :trans.Commit() > > > > > > : works fine :) Masteritem1 removed from my collection and > > > > > > from table too > > > > > > > :MasterItemList.Remove(Masteritem2) > > > > > > :session.update(MasterCategory) > > > > > > :trans.Commit() > > > > > > :not working :( Masteritem2 removed from my collection but > > > > > > not from table > > > > > > > what could be the mistake ? > > > > > > is my mapping informations correct ?- Hide quoted text - > > > > > > - Show quoted text - > > > > -- > > > James Crowley > > > Managing Director > > > Developer Fusion - Connecting developers worldwide > > > > Developer Fusion Ltd | 58 Sandringham Close | Enfield, EN1 3JH > > > mob: 07986 624128 web:http://www.developerfusion.com/-Hidequoted text - > > > > - Show quoted text -- Hide quoted text - > > > - Show quoted text - --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
