NH need the FK in the table of the relation.
On Thu, Nov 11, 2010 at 1:01 PM, Ron Denis <[email protected]> wrote:
> Ok, thanks.
>
>
>
> I have three entities that inherit from a base Entity class.
>
>
>
> public class Entity
>
> {
>
> public long Key { … }
>
> }
>
>
>
> public class Attribute : Entity
>
> {
>
> public Person Person { … }
> }
>
>
>
> public class Race : Attribute
>
> {
>
> }
>
>
>
> public class Person : Entity
>
> {
>
> public IList<Race> Races { … }
>
> }
>
>
>
> Regards,
>
>
>
> Ron
>
>
>
> *From:* [email protected] [mailto:[email protected]] *On
> Behalf Of *Fabio Maulo
> *Sent:* Thursday, November 11, 2010 9:04 AM
>
> *To:* [email protected]
> *Subject:* Re: [nhusers] Problems with a bag of joined subclass entities
>
>
>
> In your explanation you are mixing 'class' with tables.
>
> Can we see the implementation of your domain ?
>
> I would see if the relation is bidirectional or not and where is declared
> the property.
>
> Where the relation is not bidirectional the Person FK, and using
> table-per-class, should be in the table representing the class related with
> Person.
>
> --
>
> Fabio Maulo
>
>
>
>
> El 11/11/2010, a las 10:23, Ron Denis <[email protected]> escribió:
>
> The problem is that the query that is created when the Person.Races
> collection is lazy loaded is incorrect.
>
>
>
> Nhibernate is generating SQL that joins Person.PersonKey to Race.PersonKey;
> however Race doesn’t have a PersonKey. Race inherits from Attribute and
> Attribute has a PersonKey.
>
>
> I imagine that I am doing something wrong when I build the mapping
> information because somehow Nhibernate is expecting Race to have a PersonKey
> when my intent is that Race inherits PersonKey from Attribute.
>
>
>
> Regards,
>
>
> Ron
>
>
>
> *From:* [email protected] [mailto:[email protected]] *On
> Behalf Of *Fabio Maulo
> *Sent:* Tuesday, November 09, 2010 12:20 PM
> *To:* [email protected]
> *Subject:* Re: [nhusers] Problems with a bag of joined subclass entities
>
>
>
> I didn't understand the problem.
>
> On Tue, Nov 9, 2010 at 10:56 AM, Ron Denis <[email protected]>
> wrote:
>
> Good morning.
>
> I am still struggling to find a solution to this. Does anyone have any
> suggestions?
>
> Regards,
>
> Ron
>
>
> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On Behalf
> Of rdenis
> Sent: Thursday, November 04, 2010 10:30 AM
> To: nhusers
> Subject: [nhusers] Problems with a bag of joined subclass entities
>
> Guys,
>
> As the title says, i have a mapping issue. I have tried to condense the
> issue into a contrived example as follows.
>
> I have:
>
> 1) A Person entity with a PersonKey primary key.
> 2) An Attribute entity with a reference to Person (has a PersonKey foreign
> key).
> 3) A Race entity that is a joined subclass of the Attribute entity.
> 4) The Person entity has an IList of Race entities (a Races property).
>
> The problem is that nhibernate doesn't seem to recognize that Race will
> inherit the PersonKey from Attribute. In the sql generation it wants to add
> a PersonKey column to Race. Also, when I access the Races property of
> Person, the lazy load mechanism kicks in tries to query the list of Race
> entities by accessing Race.PersonKey, which, again should come from the
> Attribute class.
>
> Any help would be greatly appreciated.
>
> ------------------------------
>
> Additional Information:
>
> The Person mapping:
>
> <class name="Person" table="Person">
> <id name="Key" ....
> <column name="PersonKey" />
> ...
> </id>
> <bag inverse="true" name="IntoleranceConditions">
> <key>
> <column name="PersonKey" />
> </key>
> <one-to-many class="Race" />
> </bag>
> </class>
>
> The Attribute and Race Mappings:
>
> <class name="Attribute" table="Attribute">
> <id name="Key" ...
> <column name="AttributeKey" />
> ...
> </id>
> <joined-subclass name="Race">
> <key foreign-key="Foo_FK">
> <column name="AttributeKey" />
> </key>
> </joined-subclass>
> </class>
>
> --
> 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.
>
> ________________________________
> The contents of this e-mail and any attachments are intended solely for the
> use of the named addressee(s) and may contain confidential and/or privileged
> information. Any unauthorized use, copying, disclosure, or distribution of
> the contents of this e-mail is strictly prohibited by the sender and may be
> unlawful. If you are not the intended recipient, please notify the sender
> immediately and delete this e-mail.
>
>
> --
> 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.
>
>
>
>
> --
> 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.
> ------------------------------
>
> The contents of this e-mail and any attachments are intended solely for the
> use of the named addressee(s) and may contain confidential and/or privileged
> information. Any unauthorized use, copying, disclosure, or distribution of
> the contents of this e-mail is strictly prohibited by the sender and may be
> unlawful. If you are not the intended recipient, please notify the sender
> immediately and delete this e-mail.
>
> --
> 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.
>
> --
> 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.
>
> ------------------------------
> The contents of this e-mail and any attachments are intended solely for the
> use of the named addressee(s) and may contain confidential and/or privileged
> information. Any unauthorized use, copying, disclosure, or distribution of
> the contents of this e-mail is strictly prohibited by the sender and may be
> unlawful. If you are not the intended recipient, please notify the sender
> immediately and delete this e-mail.
>
> --
> 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.