Hello,

I have a bi-directional one to many relationship between a User and a 
Group, defined as follows:

http://pastebin.com/qxYZc4jV

Note that the Inverse is not set. Based on my understanding this means that 
NHibernate sets the Group_Id each of for the User automatically

Here is my program, adding a new group and assigning an existing user to 
this group:

var user = session.Get<User>(1);              
var group = new Group();
group.Users.Add(user);
user.Group = group;
session.Save(user);

Question #1: The SQL output I get in the console using the show_sql 
setting, is this one: http://pastebin.com/Qiagzt6J
                    It does not show how the Group_id is set for the user, 
only the group insert.
                    Why is that? Isn't SQL output showing everything? How 
to see the complete SQL?

Question #2: Next, I am adding a new user to an existing group

 var group = session.Load<Group>(1);
var user = new User();
user.Group = group;
group.Users.Add(user);

The output is this one: http://pastebin.com/5RF7Lzq2
Why is it getting all users of the group in the 2nd statement? 
I guess it's because of accessing the collection when calling 
group.Users.Add(user), but why can't NHibernate see it's actually adding a 
new user?

The weird thing is that if I am setting Inverse() on the collection, it 
makes the insert without retrieving the collection, which is how it should 
work.

I know that in practice, setting Inverse is almost always needed(you want 
to have non null restriction on the Group_id not null, and without Inverse, 
this is not possible because the insert will fail), but I am really trying 
to understand what is going on.

Thanks!
Andrew

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/nhusers/-/sXSKABVMWQEJ.
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