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