Apparently you have to specifically delete each child object. Here is some hibernate documentation stating that fact. I would assume the same rules apply to nhib 2.1.0.
http://docs.jboss.org/hibernate/core/3.3/reference/en/html/example-parentchild.html //example of deleting child objects in a one-to-many from the above link// Parent p = (Parent) session.load(Parent.class, pid); Child c = (Child) p.getChildren().iterator().next(); p.getChildren().remove(c); session.delete(c); session.flush(); On Dec 15, 1:35 pm, Jason Meckley <[email protected]> wrote: > try this instead > var line = audit.ClaimLineErrors[0]; > line.Audit = null; > audit.ClaimLineErrors.Remove(line); > > On Dec 15, 1:28 pm, welzie <[email protected]> wrote: > > > I have an Audit object that contains a IList<ClaimError> named > > "ClaimLineErrors". The "ClaimLineErrors" are inserting correctly when > > the Audit object is saved. However when I remove a ClaimLineError > > from the "ClaimLineErrors" IList and update the Audit, the associated > > ClaimLineError record is NOT deleted from the db even thought it is > > was removed from the audit's IList<ClaimError> before saving. What am > > I doing wrong? > > > //CODE EXAMPLE > > //retrieve an already saved audit, audit is NOT connected to a session > > when returned > > Audit audit = AuditDataRepistory.FindAudit(99); > > //remove the 1st element in the list (for example assume list contains > > at least one object) > > audit.ClaimLineErrors.RemoveAt(0); > > //open a new session and persist audit > > AuditDataRepistory.save(audit); > > > //MAPPINGS > > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" > > assembly="Entity" namespace="ClaimAudit.Entity"> > > <class name="ClaimAudit.Entity.Audit" lazy="false" table="audits"> > > <id name="Id"> > > <generator class="native"/> > > </id> > > <property name="Active" type="Boolean"/> > > <property name="DateReceived"/> > > <property name="DateAudited"/> > > <bag name="ClaimLineErrors" lazy="false" cascade="all-delete- > > orphan"> > > <key column="AuditId" not-null="true" update="true"/> > > <one-to-many class="ClaimLineError"/> > > </bag> > > </class> > > </hibernate-mapping> > > > <?xml version="1.0" encoding="utf-8" ?> > > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" > > assembly="Entity" namespace="ClaimAudit.Entity"> > > <class name="ClaimAudit.Entity.ClaimLineError" lazy="false" > > table="claimlineerrors"> > > <id name="Id"> > > <generator class="native"/> > > </id> > > <many-to-one name="Audit" class="Audit" column="AuditId" not- > > null="true" lazy="false"></many-to-one> > > </class> > > </hibernate-mapping> -- 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.
