ねえ、私は次の構造のエンティティを Oracle 10g テーブルから削除しようとしています:
class Record
{
string id;
string name;
DateTime dateTime;
}
次のマッピングを使用します。
<class name="Records" table="RECS">
<composite-id>
<key-property name="P_ID" />
<key-property name="NAME" />
</id>
<property name="dateTime" column="DATE_TIME_V" />
</class>
ここで、テーブルの PK が P_ID 列と NAME 列 (複合キー) であるとします。NAME は null を許可しますが、P_ID は許可しません。問題は、NHibernate が、たとえば P_ID = 9 で NAME = NULL のオブジェクトを削除しようとすると、次の delete ステートメントを出力することです。
delete from RECS R where R.P_ID = 9 and NAME = NULL
明らかに、'NAME = NULL' は 'NAME IS NULL' であるべきなので、操作は何も削除しません。NHibernate が null を他の値と同様に扱う原因となる何かが欠けているのでしょうか?
ありがとう、ハレル