大佬教程收集整理的这篇文章主要介绍了java.lang.IllegalStateException:具有@ManyToMany 3个实体的同一实体的多个表示形式,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
通过删除权限实体上的CascadeType.MERGE修复了此问题
我有3个具有ManyToMany关系的实体:
角色实体:
@Entity
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer roleID;
private String roleName;
private String description;
@ManyToMany(cascade = {CascadeType.MERGE,CascadeType.PERSIST,CascadeType.REFRESH},fetch = FetchType.EAGER)
@JoinTable(name = "role_permission",joinColumns = {@JoinColumn(name = "role_id")},inverseJoinColumns = {@JoinColumn(name = "permission_id")})
private Set<Permission> permissions = new LinkedHashSet<Permission>();
}
权限实体:
@Entity
public class Permission {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int permissionID;
private String permissionName;
private String description;
@ManyToMany(cascade = {CascadeType.MERGE,fetch = FetchType.EAGER)
@JoinTable(name = "permission_functionality",joinColumns = {@JoinColumn(name = "permission_id")},inverseJoinColumns = {@JoinColumn(name = "functionality_id")})
private Set<Functionality> functionalities = new LinkedHashSet<>();
}
功能实体:
@Entity
public class Functionality {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
}
我做了以下事情:
我创建了3个功能:
Functionality1,Functionality2,Functionality3
然后创建2个权限:
Permission1 with Functionality1,Functionality2
Permission2 with Functionality2,Functionality3
然后创建一个角色:
Role1 with Permission1 and Permission2
我收到以下异常:
以上是大佬教程为你收集整理的java.lang.IllegalStateException:具有@ManyToMany 3个实体的同一实体的多个表示形式全部内容,希望文章能够帮你解决java.lang.IllegalStateException:具有@ManyToMany 3个实体的同一实体的多个表示形式所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。