Error:-> No column with logical name in table
I am trying to join the 3 Tables and getiing this error.
What i am trying to achive is create a refernce table which will contains 3 columns userid,roleid,privilegeid Using this reference table fetch user's role and privilege
And iam getting this -> "Failed to initialize JPA EntityManagerFactory: No column with logical name 'privilegeId' in table 'user_role'"
Any kind of guidence is appriciated Thanks!
Code Snippet
@Entity
@Data
public class UserAccount {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer userid;
@Column(unique = true)
private String username;
private String password;
private boolean active;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(
name = "user_role_privileges",
joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "userid"),
inverseJoinColumns = {
@JoinColumn(name = "role_id", referencedColumnName = "roleId"),
@JoinColumn(name = "privilege_id", referencedColumnName = "privilegeId")
}
)
private List<UserRole> roles = new ArrayList<>();
}
@Entity
@Data
public class UserRole {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer roleId;
private String roleName;
@ManyToMany(mappedBy = "roles")
private List<UserAccount> users = new ArrayList<>();
@ManyToMany
@JoinTable(
name = "role_privileges",
joinColumns = @JoinColumn(name = "role_id", referencedColumnName = "roleId"),
inverseJoinColumns = @JoinColumn(name = "privilege_id", referencedColumnName = "privilegeId")
)
private Set<UserPrivilege> privileges;
}
@Data
@Entity
public class UserPrivilege {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer privilegeId;
private String privilegeName;
@ManyToMany(mappedBy = "privileges")
private List<UserRole> roles ;
}