Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java.lang.IllegalStateException: Multiple representations of the same entity with @ManyToMany 3 entities

I have 3 entities with ManyToMany relationships:

Role Entity:

@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>(); } 

Permission Entity:

@Entity public class Permission {     @Id     @GeneratedValue(strategy = GenerationType.IDENTITY)     private int permissionID;     private String permissionName;     private String description;      @ManyToMany(cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH}, fetch = FetchType.EAGER)     @JoinTable(name = "permission_functionality", joinColumns = {@JoinColumn(name = "permission_id")}, inverseJoinColumns = {@JoinColumn(name = "functionality_id")})     private Set<Functionality> functionalities = new LinkedHashSet<>(); } 

Functionality Entity:

@Entity public class Functionality {     @Id     @GeneratedValue(strategy = GenerationType.IDENTITY)     private Integer id;     private String name; } 

I did the following:

  1. I have created 3 functionalities:

    Functionality1, Functionality2, Functionality3 
  2. Then created 2 permissions:

    Permission1 with Functionality1, Functionality2  Permission2 with Functionality2, Functionality3 
  3. Then created a role:

    Role1 with Permission1 and Permission2  

I am getting the following exception:

java.lang.IllegalStateException: Multiple representations of the same entity [com.persistence.entity.admin.Functionality#1] are being merged. Detached: [com.persistence.entity.admin.Functionality@4729256a]; Detached: [com.persistence.entity.admin.Functionality@56ed25db]

like image 687
user1188867 Avatar asked Oct 27 '14 15:10

user1188867


1 Answers

Fixed it by removing CascadeType.MERGE on Permission entity

like image 50
user1188867 Avatar answered Sep 23 '22 02:09

user1188867