Рассмотрим следующее сопоставление таблиц, это не более чем классический пример сопоставления ролей безопасности пользователя.
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="Model.User, Domain" table="[User]">
<id name="UserID" column="UserId" type="Int32">
<generator class="hilo">
<param name="table">NhibernateUniqueKey</param>
<param name="column">NextHi</param>
<param name="where">TableName='[User]'</param>
<param name="max_lo">20</param>
</generator>
</id>
<property name="UserName" column="UserName" type="String" length="20"/>
<property name="Password" column="Password" type="String" length="20"/>
.
.
<bag name="SecurityRoles" table="UserSecurityRole" lazy="false">
<key column="UserId"></key>
<many-to-many class="Model.SecurityRole, Domain" column="SecurityRoleId"></many-to-many>
</bag>
Проблема в том, когда я извлекаю пользователя по имени пользователя [используя критериизапрос] и очистить сеанс, все роли безопасности, прикрепленные к полученному пользователю, удаляются и снова вставляются, хотя я не делаю никаких изменений в извлеченном объекте.
Я что-то здесь не так делаю илитаким образом работает nhibernate?