Quote: "I thought that NH would see [...]. But unfortunately NH
didn't."

What actually did NH do? Has the foreign key been put into the wrong
table? In which?


On 17 Aug., 10:27, hival <[email protected]> wrote:
> Yes, exactly the same problem. The fact that I'm not the only who
> encountered this problem gives me some hope that it will be resolved
> in the near future :)
>
> On Aug 17, 3:17 am, Anne Epstein <[email protected]> wrote:
>
> > Sounds like you're running into the same bug I reported 
> > here:http://nhjira.koah.net/browse/NH-1747
>
> > If this bug is a problem for you, it can't hurt to vote for/comment on
> > the bug there...
>
> > On Sun, Aug 16, 2009 at 8:24 AM, hival<[email protected]> wrote:
>
> > > I have a simple hierarchy of classes mapped with the "subclass + join"
> > > strategy:
>
> > > <class name="A" abstract="true">
> > >        <id name="Id" column="a_id">
> > >                <generator class="native" />
> > >        </id>
>
> > >        <discriminator column="a_type" type="string" />
> > >        <property name="FieldA" column="a_field_a" />
>
> > >        <subclass name="B" discriminator-value="B">
> > >                <join table="B">
> > >                        <key column="b_id" />
> > >                        <property name="FieldB" column="b_field_b" />
> > >                        <many-to-one name="C" column="c_id" 
> > > not-null="true" />
> > >                </join>
> > >        </subclass>
> > > </class>
>
> > > and another entity is supposed to contain a collection of the subclass
> > > B:
>
> > > <class name="C">
> > >        <id name="Id" column="c_id">
> > >                <generator class="native" />
> > >        </id>
>
> > >        <set name="B" inverse="true" cascade="all-delete-orphan">
> > >                <key column="c_id" />
> > >                <one-to-many class="B" />
> > >        </set>
> > > </class>
>
> > > I thought that NH would see that the foreign key of the collection
> > > belonged to the joined table B and would join tables B and C. But
> > > unfortunately NH didn't. The second try was to use may-to-many element
> > > with the intermediate table:
>
> > > <set name="B" table="B" inverse="true" cascade="all-delete-orphan">
> > >        <key column="c_id" />
> > >        <many-to-many class="B" column="b_id" unique="true" />
> > > </set>
>
> > > It works but when loading the collection NH joins table B twice: first
> > > time to load an instance of class B and second time because of using
> > > many-to-may element.
>
> > > /* load collection NHTest.Model.C.B */ SELECT
> > >    b0_.c_id as c3_1_,
> > >    b0_.b_id as b1_1_,
> > >    b1_.a_id as a1_3_0_,
> > >    b1_.a_field_a as a3_3_0_,
> > >    b1_1_.b_field_b as b2_4_0_,
> > >    b1_1_.c_id as c3_4_0_
> > > FROM
> > >    B b0_
> > > left outer join
> > >    A b1_
> > >        on b0_.b_id=b1_.a_id
> > > left outer join
> > >    B b1_1_
> > >        on b1_.a_id=b1_1_.b_id
> > > WHERE
> > >    b0_.c_...@p0;
> > > @p0 = 1
>
> > > Besides of using many-to-many element, is there another way to point
> > > out NH that it should look for a foreign key of the collection in the
> > > joined table?
>
> > > Thank you.- 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to