i have problem, becouse don't know how remove specific role user. problem connected unidirectional relation in permission class. these relevant code snippets.
class person
@entity public class user { @id @generatedvalue(strategy = generationtype.identity) private long userid; @onetomany(cascade = cascadetype.all, fetch=fetchtype.lazy, mappedby="user") private collection<role> roles;
class role
@entity public class role { @id @generatedvalue(strategy = generationtype.identity) private long roleid; @manytoone( fetch=fetchtype.lazy) private user user;
i tried remove specific role user in way
user.getroles().remove(roletoremove) entitymanger.merge(user)
roletoremove deleted collection not datebase. (i wrote test completed)
so, added
orphanremoval = true
and have problem unidirectional relationship occurs in permission class. receives databaseexepction becouse idrole want remove, exists in permision table.
@entity public class permission { @id @generatedvalue(strategy = generationtype.identity) private long permissionid; @manytoone( fetch=fetchtype.lazy) private role role;
so, question how manage problem.
hello user not owner of relationship user - role. need update owning end of relationship in order make work.
user.getroles().remove(roletoremove) roletoremove.setuser(null) entitymanger.merge(user)
my understanding don't need orphan removal.
Comments
Post a Comment