Mahmood Shahrokni
Mahmood Shahrokni

Reputation: 236

NHibernate constraint violated issue

There are two entities in my code which are participated in a many-to-one relationship. The problem is when i try to delete the parent it says :

ORA-02292: integrity constraint violated - child record found

As you can see below there is a User Security Parameter entity in my project which can have related children called Exceptional User Security parameters. I expect the ORM to delete the found child records when it wants to eliminate their parent

  <bag name="ExeptionalUserSecurityParameters" inverse="true" lazy="false" access="property" cascade="none" batch-size="256">
      <key>
        <column name="Key"  />
      </key>
      <one-to-many class="ExeptionalUserSecurityParameter"/>
    </bag>

<many-to-one name="UserSecurityParameter" cascade="all-delete-orphan" fetch="join"
         class="UserSecurityParameters" >
  <column name="Key" />
</many-to-one>

How can I avoid this issue?

Upvotes: 0

Views: 77

Answers (1)

Radim K&#246;hler
Radim K&#246;hler

Reputation: 123891

Almost always (well, always) I do use cascading like this:

//<bag name="ExeptionalUserSecurityParameters" cascade="none" ...
<bag name="ExeptionalUserSecurityParameters" cascade="all-delete-orphan" ...

//<many-to-one name="UserSecurityParameter"    cascade="all-delete-orphan" 
<many-to-one name="UserSecurityParameter"    cascade="none" 

that should solve the issue. If the collection owner is deleted.. who ever reference it - is deleted as well. But not vice versa

Upvotes: 1

Related Questions