Thanks a ton. This explains it all. On Feb 2, 3:41 pm, Oskar Berggren <oskar.bergg...@gmail.com> wrote: > Sorry, but this thread seems quite confusing so far... Please consider > the following: > > Inheritance-mapping: > Base class and a number of subclasses. You have ONE object, which may > be of a subclass or of the baseclass. This may get persisted to one > table, or spread out over several tables, but it is still ONE object. > > (Specifically: Spreading it out over several tables does not mean that > you can later delete the row in one of the tables and expect that to > be meaningful. It would be like deleting "half" of a C# object.) > > Parent-child-mapping: > You have a parent class and a child class. The parent "owns" a child > via a Parent.ChildProperty or multiple children via a collection > property. This is a one-to-many relationship from parent to child, or > possibly a one-to-one relationship if a parent can only have one > child. Note that you have at least TWO objects here. In these cases it > is perfectly fine to delete the child and keep the parent, but it is > NOT inheritance mapping. > > So, which one is it that you want? Do you have a base class and a > subclass, or do you have a parent class which owns objects of another, > children, class? > > /Oskar > > 2010/2/2 Mind Works <ani...@gmail.com>: > > > Thanks for the reply. > > > Is there a way to circumvent this. In the sense if we have a one-to- > > many relationship mapped using the table-per-class struct then on > > deleting one of the subclass the other subclass should not be deleted. > > This would be on the lines of the way the relational data works. > > > If we set the cascade property to none then we get the referential > > error. One of the ways is to handle the error such that the parent > > record does not get deleted. However this would be a work around and > > not a solution. > > > Kindly advise. > > > Regards, Anil > > > On Feb 2, 9:40 am, Fabio Maulo <fabioma...@gmail.com> wrote: > >> The strategy you are talking about is: Table-per-class > >> For sure when you delete a subclass the delete will happen in the subclass > >> and in all its superclass because what you are deleting is an object > >> instance where the state is spanned between more than one table. > > >> 2010/2/2 Mind Works <ani...@gmail.com> > > >> > Hi, > > >> > We have modeled the relationship between domain objects using the > >> > table per subclass hierarchy structure. > > >> > The structure looks like: > > >> > Parent: > > >> > <?xml version="1.0" encoding="iso-8859-1"?> > >> > <hibernate-mapping default-lazy="false" default-cascade="none" > >> > xmlns="urn:nhibernate-mapping-2.2" > > >> > <class name="ParentDO, TestProject1" table="TBLX" dynamic-insert > >> > ="false" dynamic-update="false"> > >> > <id name="ID" column="IDCol" type="System.Int64" unsaved-value="null"> > >> > <generator class="sequence"> > >> > <param name="sequence">SEQ01T</param> > >> > </generator> > >> > </id> > >> > <version name="ver" column="ROWID" type="Int32" generated="never" > >> > unsaved-value="null" /> > >> > <property name="Xid" column="XID" type="System.Int64" > >> > insert="true" update="true" /> > >> > <property name="RowID" column="ROWID" type="System.String" > >> > insert="false" update="false" /> > >> > </class> > >> > </hibernate-mapping> > > >> > The relationship has been mapped as follows: > > >> > <?xml version="1.0" encoding="iso-8859-1"?> > >> > <hibernate-mapping default-lazy="false" default-cascade="none" > >> > xmlns="urn:nhibernate-mapping-2.2"> > >> > <joined-subclass name="Child, TestProject1" extends="ParentDO, > >> > TestProject1" table="TBLY" > > >> > <key column="CHILDID" foreign-key="PARENTID"/> > >> > <property..../> > >> > <property..../> > >> > </joined-subclass> > >> > </hibernate-mapping> > > >> > The delete cascade works as desired, however whenever we delete the > >> > subclass the delete happens not only on the table to which the > >> > subclass has been mapped, but also the root table and potentially > >> > joined-subclass tables further down the inheritance hierarchy. > > >> > We have tried setting the dynamic-update and dynamic-insert properties > >> > to false and also tried to set the cascade property to save-update, > >> > none... The delete still moves up to the parent table. > > >> > Is this a known issue, or are we missing something. > > >> > Please help. > > >> > -- > >> > You received this message because you are subscribed to the Google Groups > >> > "nhusers" group. > >> > To post to this group, send email to nhus...@googlegroups.com. > >> > To unsubscribe from this group, send email to > >> > nhusers+unsubscr...@googlegroups.com<nhusers%2bunsubscr...@googlegroups.com> > >> > . > >> > For more options, visit this group at > >> >http://groups.google.com/group/nhusers?hl=en. > > >> -- > >> Fabio Maulo > > > -- > > You received this message because you are subscribed to the Google Groups > > "nhusers" group. > > To post to this group, send email to nhus...@googlegroups.com. > > To unsubscribe from this group, send email to > > nhusers+unsubscr...@googlegroups.com. > > For more options, visit this group > > athttp://groups.google.com/group/nhusers?hl=en.
-- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to nhus...@googlegroups.com. To unsubscribe from this group, send email to nhusers+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.