sql server - Cascade delete in Eclipselink in a self-referencing table -
i'm trying cascade delete in jpa self-referencing table whatever same error.
@entity @table(name="sys_acl", schema="dbo") public class acl implements serializable { private static final long serialversionuid = 1l; @embeddedid protected accesscontrollistpk accesscontrollistpk; @joincolumn(name = "role_id", referencedcolumnname = "id", nullable = false, insertable = false, updatable = false) @manytoone(optional = false) private roletable roletable; @joincolumn(name = "view_id", referencedcolumnname = "id", nullable = false, insertable = false, updatable = false) @manytoone(optional = false) private pagemap pagemap; @column(name="parent_role") private long parentrole; @column(name="parent_view_id") private long parentview; @joincolumns({ @joincolumn(name = "parent_role", referencedcolumnname = "role_id", nullable = true, insertable = false, updatable = false), @joincolumn(name = "parent_view_id", referencedcolumnname = "view_id", nullable = true, insertable = false, updatable = false)}) @onetomany(cascade = cascadetype.all, orphanremoval=true) @privateowned private list<acl> children = new linkedlist<acl>();
this error i'm getting:
exception [eclipselink-4002] (eclipse persistence services - 2.3.0.v20110604-r9504): org.eclipse.persistence.exceptions.databaseexception internal exception: com.microsoft.sqlserver.jdbc.sqlserverexception: delete statement conflicted same table reference constraint "sysccsscntrllstprntvwd". conflict occurred in database "mydb", table "dbo.sys_acl" error code: 547
the database structure this:
create table sys_acl ( view_id numeric, role_id numeric, parent_role numeric, parent_view_id numeric, constraint pk primary key (role_id, view_id), constraint fk1 foriegn key (view_id) referencing view_table(id), constraint fk2 foriegn key (role_id) referenicng role_table(id), constraint fkself foreign key (parent_role, parent_view) referencing sys_acl(role_id, view_id));
i can use recursive method delete children first want know if possible doing in jpa. i'm using gf 3.1, , eclipselink 2.3.0
what sql log?
your model seems overly complex. might want remove accesscontrollistpk , put @id on @manytoones.
your issue may cause because using @joincolumn on @onetomany, use mappedby , @manytoone inverse, seem use @basuc foreign keys instead, remove these , join column on onetomany , define @manytoone parent.
Comments
Post a Comment