Java mappedBy引用基于角色的未知目标实体属性

Java mappedBy引用基于角色的未知目标实体属性,java,spring,hibernate,spring-security,roles,Java,Spring,Hibernate,Spring Security,Roles,1个用户==>多个角色 1-角色==>许多组件 为此,我配置了如下 userDao.java @Entity @Table(name = "User_info") public class UserDao { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int userId; @Column(name="username") private String username;

1个用户==>多个角色

1-角色==>许多组件

为此,我配置了如下

userDao.java

@Entity
@Table(name = "User_info")
public class UserDao {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int userId;
    @Column(name="username")
    private String username;
    @Column(name="password")
    @JsonIgnore
    private String password;
    @ManyToMany(cascade=CascadeType.MERGE,fetch = FetchType.EAGER)
    @JoinTable(
       name="user_role",
       joinColumns={@JoinColumn(name="USER_ID", referencedColumnName="userId")},
       inverseJoinColumns={@JoinColumn(name="ROLE_ID", referencedColumnName="roleId")})
    private List<Role> roles;
@Entity
@Table(name = "roles")
public class Role {
    @Id @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer roleId;
    @Column(nullable = false, unique = true)
    @NotEmpty
    private String roleName;

    @ManyToMany(mappedBy = "roles")
    private List < UserDao > users;

    @ManyToMany(cascade=CascadeType.MERGE,fetch = FetchType.EAGER)
    @JoinTable(
       name="role_component",
       joinColumns={@JoinColumn(name="ROLE_ID", referencedColumnName="roleId")},
       inverseJoinColumns={@JoinColumn(name="COMP_ID", referencedColumnName="compId")})
    private List<Component> components;
@Entity
@Table(name = "component")
public class Component {

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer compId;
    @Column(nullable = false, unique = true)
    @NotEmpty
    private String compName;

    @ManyToMany(mappedBy = "component")
    private List < Role > roles;
@实体
@表(name=“User\u info”)
公共类UserDao{
@身份证
@GeneratedValue(策略=GenerationType.AUTO)
私有int用户id;
@列(name=“username”)
私有字符串用户名;
@列(name=“password”)
@杰索尼奥雷
私有字符串密码;
@ManyToMany(cascade=CascadeType.MERGE,fetch=FetchType.EAGER)
@可接合(
name=“用户角色”,
joinColumns={@JoinColumn(name=“USER\u ID”,referencedColumnName=“userId”)},
inverseJoinColumns={@JoinColumn(name=“ROLE\u ID”,referencedColumnName=“roleId”)}
私有列表角色;
Role.java

@Entity
@Table(name = "User_info")
public class UserDao {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int userId;
    @Column(name="username")
    private String username;
    @Column(name="password")
    @JsonIgnore
    private String password;
    @ManyToMany(cascade=CascadeType.MERGE,fetch = FetchType.EAGER)
    @JoinTable(
       name="user_role",
       joinColumns={@JoinColumn(name="USER_ID", referencedColumnName="userId")},
       inverseJoinColumns={@JoinColumn(name="ROLE_ID", referencedColumnName="roleId")})
    private List<Role> roles;
@Entity
@Table(name = "roles")
public class Role {
    @Id @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer roleId;
    @Column(nullable = false, unique = true)
    @NotEmpty
    private String roleName;

    @ManyToMany(mappedBy = "roles")
    private List < UserDao > users;

    @ManyToMany(cascade=CascadeType.MERGE,fetch = FetchType.EAGER)
    @JoinTable(
       name="role_component",
       joinColumns={@JoinColumn(name="ROLE_ID", referencedColumnName="roleId")},
       inverseJoinColumns={@JoinColumn(name="COMP_ID", referencedColumnName="compId")})
    private List<Component> components;
@Entity
@Table(name = "component")
public class Component {

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer compId;
    @Column(nullable = false, unique = true)
    @NotEmpty
    private String compName;

    @ManyToMany(mappedBy = "component")
    private List < Role > roles;
@实体
@表(name=“roles”)
公共阶级角色{
@Id@GeneratedValue(策略=GenerationType.AUTO)
私有整数roleId;
@列(nullable=false,unique=true)
@空空如也
私有字符串roleName;
@许多(mappedBy=“角色”)
私有列表用户;
@ManyToMany(cascade=CascadeType.MERGE,fetch=FetchType.EAGER)
@可接合(
name=“角色\组件”,
joinColumns={@JoinColumn(name=“ROLE\u ID”,referencedColumnName=“roleId”)},
inverseJoinColumns={@JoinColumn(name=“COMP\u ID”,referencedColumnName=“compId”)}
私有列表组件;
component.java

@Entity
@Table(name = "User_info")
public class UserDao {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int userId;
    @Column(name="username")
    private String username;
    @Column(name="password")
    @JsonIgnore
    private String password;
    @ManyToMany(cascade=CascadeType.MERGE,fetch = FetchType.EAGER)
    @JoinTable(
       name="user_role",
       joinColumns={@JoinColumn(name="USER_ID", referencedColumnName="userId")},
       inverseJoinColumns={@JoinColumn(name="ROLE_ID", referencedColumnName="roleId")})
    private List<Role> roles;
@Entity
@Table(name = "roles")
public class Role {
    @Id @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer roleId;
    @Column(nullable = false, unique = true)
    @NotEmpty
    private String roleName;

    @ManyToMany(mappedBy = "roles")
    private List < UserDao > users;

    @ManyToMany(cascade=CascadeType.MERGE,fetch = FetchType.EAGER)
    @JoinTable(
       name="role_component",
       joinColumns={@JoinColumn(name="ROLE_ID", referencedColumnName="roleId")},
       inverseJoinColumns={@JoinColumn(name="COMP_ID", referencedColumnName="compId")})
    private List<Component> components;
@Entity
@Table(name = "component")
public class Component {

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer compId;
    @Column(nullable = false, unique = true)
    @NotEmpty
    private String compName;

    @ManyToMany(mappedBy = "component")
    private List < Role > roles;
@实体
@表(name=“component”)
公共类组件{
@身份证
@GeneratedValue(策略=GenerationType.AUTO)
私有整数compId;
@列(nullable=false,unique=true)
@空空如也
私有字符串compName;
@多个(mappedBy=“组件”)
私有列表<角色>角色;
我得到以下错误,请建议错误

原因:org.hibernate.AnnotationException:mappedBy引用 未知的目标实体属性: 中的net.springboot.helloworldapp.bean.Role.component net.springboot.helloworldapp.bean.Component.roles位于 org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:785)


有输入错误。
组件
应该是
组件


@ManyToMany(mappedBy=“components”)//角色;

您错过了错误部分。