NH is based in ORM technique... even if we are supporting some legacy scenarios we can't support anything. in ORM you have 3 Entity-Mapping-strategies: Table-per-class-Hierarchy Table-per-class Table-per-concrete-class
In NH we have one more strategy that allow a mix between Table-per-class-Hierarchy and Table-per-class allowing the "extension" of Table-per-class-Hierarchy with some subclasses persisted in a different table. That is all. 2010/1/29 Petr Syromolotov <[email protected]> > No I can't store "test" without storing "testChild". (Names a bit confusing > here) > And I want to use <subclass> functionality for "test" class and this causes > a problem since I can not put <subclass> inside <join/> tag. > > > On Fri, Jan 29, 2010 at 5:36 PM, Fabio Maulo <[email protected]> wrote: > >> What I mean is that you can't store a "testChild" without store "test" >> because the ID is the ID of "test" (even more when you are using identity >> where there isn't a chance to know the ID without INSERT a record). >> >> >> 2010/1/29 Petr Syromolotov <[email protected]> >> >>> These ID in table "testChild" and Id in table "test" are same. >>> I understand what you are talking about one-to-one relation smell. >>> But it's a legacy DB I have to support and I hoped that <join >>> inverse="true"/> will work for me. >>> >>> So can you explain what's the difference between inverse="true" and >>> inverse="false" in <join /> tag? >>> >>> >>> On Fri, Jan 29, 2010 at 4:43 PM, Fabio Maulo <[email protected]>wrote: >>> >>>> which is the ID in table "testChild" ? from where it come ? >>>> >>>> Think about that ;) >>>> >>>> 2010/1/29 Petr Syromolotov <[email protected]> >>>> >>>>> Assume I have following mapping: >>>>> >>>>> <class name="test" table="test"> >>>>> <id name="Id"> >>>>> <generator class="native" /> >>>>> </id> >>>>> <discriminator column="Type" /> >>>>> >>>>> <property name="Name" /> >>>>> >>>>> <join table="testChild" inverse="true"> >>>>> <key column="Id"/> >>>>> <property name="ChildName" /> >>>>> </join> >>>>> >>>>> <subclass name="Derived" discriminator-value="derived"> >>>>> <property name="DerivedName" /> >>>>> </subclass> >>>>> </class> >>>>> >>>>> Now I'm trying to add new instance of "test" class to database. >>>>> What I expect is that first record to table "testChild" will be >>>>> inserted. (otherwise what does inverse="true" mean?) >>>>> And only then record to table "test" will be inseted. >>>>> >>>>> The problem is that this does not happen. (: >>>>> First record in "test" table is inserted and then to "testChild". >>>>> My DB required that record in testChild is created first (: >>>>> >>>>> I can not move "test" table to <join> tag since I use <subclass> >>>>> >>>>> Is there any solution? >>>>> >>>>> >>>>> PS yes I know that it's a bad DB design but I can not do anything with >>>>> that. >>>>> >>>>> >>>>> Thanks, Peter >>>>> >>>>> -- >>>>> 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]<nhusers%[email protected]> >>>>> . >>>>> 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 [email protected]. >>>> To unsubscribe from this group, send email to >>>> [email protected]<nhusers%[email protected]> >>>> . >>>> For more options, visit this group at >>>> http://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 [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]<nhusers%[email protected]> >>> . >>> 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 [email protected]. >> To unsubscribe from this group, send email to >> [email protected]<nhusers%[email protected]> >> . >> For more options, visit this group at >> http://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 [email protected]. > To unsubscribe from this group, send email to > [email protected]<nhusers%[email protected]> > . > 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 [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.
