-1

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 ;
}

0 Answers0