【发布时间】:2016-07-21 16:25:37
【问题描述】:
我有问题,因为我不知道如何从用户中删除特定角色。这个问题与 Permission 类中的单向关系有关。 这些只是相关的代码sn-ps。
类人
@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;
类角色
@Entity
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long roleId;
@ManyToOne( fetch=FetchType.LAZY)
private User user;
我试图以这种方式从用户中删除特定角色
user.getRoles().remove(roleToRemove)
entityManger.merge(user)
roleToRemove 已从 Collection 中删除,但未从数据库中删除。 (我写的测试已经完成)
所以,我添加了
orphanRemoval = true
目前我遇到了 Permission 类中发生的单向关系问题。我收到 DatabaseExepction 因为我要删除的 idRole 存在于 Permision 表中。
@Entity
public class Permission {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long permissionId;
@ManyToOne( fetch=FetchType.LAZY)
private Role role;
所以,我的问题是如何解决这个问题。
【问题讨论】:
标签: java jpa eclipselink one-to-many entitymanager