Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[eclipselink-users] Integrity constraint violation on join table involved in cascade delete; using HSQL

Hello,
I'm having a problem similar to the one reported in bug 221389, but my model
is a little different and I'm using EclipseLink 2.1.0, which should have the
fix for the aforementioned bug.  So I think it's a similar bug that still
exists in 2.1.0.

I have only made use of standard JPA annotations to map my classes.  I have
an entity (E1) with a 1xM relationship to an abstract entity (aaE2) that has
two levels of entities inheriting from it (aE2 and E2).  The immediate
abstract child of the abstract entity at the M side of the relationship
(aE2) has a 1xM relationship to another entity (E3) that inherits from an
abstract MappedSuperclass (aMS3).

aaE2<--aE2<--E2
M        1
x         x
1        M
E1      E3-->aMS3

I have cascade remove applied to the above relationships (actually, all
cascade types).  I used the JOINED inheritance strategy for E2.  EclipseLink
creates join tables for each of the 1xM relationships above.

When I delete an instance of E1 that has instances of E2, which in turn has
instances of E3, EclipseLink attempts to delete from the table for E3 before
it deletes from the join table linking aE2 and E3. 

I get the following exception:

Exception [EclipseLink-4002] (Eclipse Persistence Services -
2.1.0.v20100614-r7608): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Integrity constraint violation
<constraint_name> table: <aE2 1xM E3>) in statement [DELETE FROM <E3> WHERE
(<primary_key> = ?)]
Error Code: -8

where <constraint_name> is the name of the constraint being violated, <aE2
1xM E3> is the name of the join table linking aE2 and E3, <E3> is the name
of the table for E3, and <primary_key> is the name of the primary key in
<E3>.

I believe this is this a bug because EclipseLink should be deleting rows
from <aE2 1xM E3> before deleting from <E3>.

It works in Hibernate 3.5.3, too.

Thanks,
Dave
-- 
View this message in context: http://old.nabble.com/Integrity-constraint-violation-on-join-table-involved-in-cascade-delete--using-HSQL-tp29474882p29474882.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.



Back to the top