嘿,我正在尝试从 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 允许空值但 P_ID 不允许时。现在,问题是当 NHibernate 尝试删除一个具有 P_ID = 9 和 NAME = NULL 的对象时,它会输出以下删除语句:
delete from RECS R where R.P_ID = 9 and NAME = NULL
显然,该操作不会删除任何内容,因为“NAME = NULL”应该是“NAME IS NULL”。我是否在这里遗漏了一些导致 NHibernate 像对待任何其他值一样对待空值的东西?
谢谢,哈雷尔