Albert Lee created OPENJPA-2199:
-----------------------------------

             Summary: Constraint violation exception when removing relationship 
using (orphanRemoval = true)
                 Key: OPENJPA-2199
                 URL: https://issues.apache.org/jira/browse/OPENJPA-2199
             Project: OpenJPA
          Issue Type: Bug
          Components: jdbc
    Affects Versions: 2.2.0, 2.1.0, 2.0.0
            Reporter: Albert Lee
            Assignee: Albert Lee


The problem occurs with the following relationships between classes:

Parent ->* Child ->* GrandChild. Class Parent has a collection of Childs.
Class Child has a collection of GrandChilds.
Each one-to-many relationship is annotated like this: @OneToMany(cascade = 
CascadeType.
ALL, orphanRemoval = true, ...). I.e. we use orphan removal and remove 
operations cascade from parents to children and grandchildren.

When we do the following a DB constraint violation occurs:
1) Start a transaction
2) Load a Parent instance from the database
3) Navigate to a Child and modify it
4) Cut the relationship between Child and GrandChild
5) Cut the relationship between Parent and Child
6) Commit the transaction

Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: DELETE on table 
'JPAORPHAN_CHILD' caused a violation of foreign key constraint 
'SQL120320110237861' for key (11).  The statement has been rolled back. 
{prepstmnt 1074806800 DELETE FROM APP.JPAORPHAN_CHILD WHERE ID = ? 
[params=(int) 11]} [code=20000, state=23503]

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to