Thanks, this make it clear!!
Regards
----- Original Message -----
From: James Gregory
To: [email protected]
Sent: Friday, July 03, 2009 2:48 PM
Subject: [nhusers] Re: What's the point of inverse=false?
Bi-directional relationships are when you can access a relationship from both
sides.
// mono-directional
public class Store
{
public IList<Product> Products { get; }
}
public class Product
{}
// mono-directional
public class Store
{}
public class Product
{
public Store Store { get; }
}
// bi-directional
public class Store
{
public IList<Product> Products { get; }
}
public class Product
{
public Store Store { get; }
}
On Fri, Jul 3, 2009 at 9:40 PM, Cesar Sanz <[email protected]> wrote:
Hello,
What do you mean by biderectional? This topic is very interesting because
this attribute
is really hard to understand.
Can you explain a little further?
Thanks
----- Original Message -----
From: "Roger" <[email protected]>
To: "nhusers" <[email protected]>
Sent: Wednesday, July 01, 2009 2:30 AM
Subject: [nhusers] Re: What's the point of inverse=false?
<<What I don't get is this: when would you NOT want to use
inverse=true on a one-to-many relationship? >>
In monodirectional relationships.
I would guess the reason this is not "happening by default" in
bidirectional one-to-many refs is to have consistent behaviour with
other mappings such as many-to-many refs where you need to choose one
side. I'm not sure though...
To answer your question - if you have have a bidirectional one-to-many
rel, always use inverse=true.
/Roger
On Jun 30, 2:49 pm, James Allen <[email protected]>
wrote:
> I have been trying to get to grips with Hibernate's inverse attribute,
> and it seems to be just one of those things that is conceptually
> difficult.
>
> The gist that I get is that when you have a parent entity (e.g.
> Parent) that has a collection of Child objects using a one-to-many
> mapping, setting inverse=true on the mapping tells Hibernate that 'the
> other side (the Child) has responsibility to update itself to maintain
> the foreign key reference in its table'.
>
> Doing this appears to have 2 benefits when it comes to adding Children
> to the collection in your code, and then saving the Parent: you save
> an unneccessary hit on the database (because without inverse set,
> Hibernate thinks it has two places to update the FK relationship)
> (seehttp://nhprof.com/Learn/Alert?name=SuperfluousManyToOneUpdate), and
> according to the official docs:
>
> "If the column of a association is declared NOT NULL, NHibernate may
> cause constraint violations when it creates or updates the
> association. To prevent this problem, you must use a bidirectional
> association with the many valued end (the set or bag) marked as
> inverse="true"."
>
> This all seems to make sense so far. What I don't get is this: when
> would you NOT want to use inverse=true on a one-to-many relationship?
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---