[ https://issues.apache.org/jira/browse/OPENJPA-2199?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Albert Lee closed OPENJPA-2199. ------------------------------- > 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.0.0, 2.1.0, 2.2.0, 2.3.0 > Reporter: Albert Lee > Assignee: Albert Lee > Fix For: 2.0.3, 2.1.2, 2.3.0, 2.2.1 > > > 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 For more information on JIRA, see: http://www.atlassian.com/software/jira