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

Popular posts from this blog

javascript - backbone.js Collection.add() doesn't `construct` (`initialize`) an object -

php - Get uncommon values from two or more arrays -

Adding duplicate array rows in Php -