2009-12-06 5 views
0

Hey, je suis en train de supprimer une entité de la structure suivant d'une table Oracle 10g:NHibernate - Suppression d'objets avec composite PK, lorsque l'une des colonnes de PK est NULL

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

avec le mapping suivant :

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

maintenant, dire que la table est de PK colonnes P_ID et NOM (clé composite), lorsque NOM allow nulls mais P_ID ne fonctionne pas. Maintenant, la question est que lorsque NHibernate essaie de supprimer un objet, disons, P_ID = 9 et NAME = NULL, il émet l'instruction delete suivante:

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

Obvioisly, l'opération supprimera rien depuis « NOM = NULL 'devrait être' NAME IS NULL '. Suis-je en train de manquer quelque chose qui fait que NHibernate traite les valeurs nulles comme toutes les autres valeurs?

Merci, Harel

Répondre

2

"disent que le PK de la table est P_ID et colonnes NOM (clé composite), lorsque NOM allow nulls"

Pas possible. Une colonne de clé primaire ne peut pas être nulle. Ce que vous avez est une table SANS clé primaire, ce qui explique pourquoi vous avez des problèmes.