You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Albert Lee (JIRA)" <ji...@apache.org> on 2012/10/09 20:40:03 UTC

[jira] [Closed] (OPENJPA-2199) Constraint violation exception when removing relationship using (orphanRemoval = true)

     [ 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