views:

33

answers:

1

Hey, i'm trying to delete an entity of the following structure from an Oracle 10g tables:

class Record 
{
   string id;
   string name;
   DateTime dateTime;
}

with the following mapping:

<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>

Now, say that the table's PK is P_ID and NAME columns (composite key), when NAME allow nulls but P_ID doesn't. Now, the issue is that when NHibernate tries to delete an object with, say, P_ID = 9 and NAME = NULL, it outputs the following delete statement:

delete from RECS R where R.P_ID = 9 and NAME = NULL

Obvioisly, the operation will delete nothing since 'NAME = NULL' should be 'NAME IS NULL'. Am i'm missing something here that causes NHibernate to treat nulls like any other values?

Thanks, Harel

+1  A: 

"say that the table's PK is P_ID and NAME columns (composite key), when NAME allow nulls"

Not possible. A primary key column cannot be null. What you have is a table WITHOUT a primary key, which is why you are getting problems.

Gary