Hibernate version: 1.2.0b2
Mapping documents:
Code:
<class name="Account">
<id name="ID">
<generator class="sequence">
<param name="sequence">account_id_sequence</param>
</generator>
</id>
<property name="Name" />
<property name="StrippedName" />
<property name="Ticks" />
<property name="Gender" />
<property name="CreationDate" />
<property name="Flags" />
<many-to-one name="Alliance" />
<property name="AppliedForAlliance" />
</class>
Code:
<class name="Alliance">
<id name="ID">
<generator class="sequence">
<param name="sequence">alliance_id_sequence</param>
</generator>
</id>
<property name="Name" />
<many-to-one name="Leader" />
<many-to-one name="Coleader" />
<many-to-one name="DefaultRank" cascade="all" />
<map name="MemberRanks" cascade="save-update">
<key column="alliance_id" />
<index-many-to-many class="Account" />
<one-to-many class="Rank" />
</map>
<map name="Applications">
<key column="alliance_id" />
<index-many-to-many class="Account, STGQ" />
<element type="String" />
</map>
<list name="Ranks" cascade="all">
<key column="alliance_id" />
<index />
<one-to-many class="Rank" />
</list>
</class>
Code between sessionFactory.openSession() and session.close():Code:
alliance.Leader.Alliance = null;
session.Update(Leader);
_MemberRanks.Remove(Leader);
session.Flush();
Here nothing happens.
Code:
_Applications.Remove(account);
account.Alliance = null;
session.Flush();
Here, "account" is a member of Apllications - and, surprisingly? it works. After issuing the Flush, the databse holds NULL for "alliance" in that specific row.