首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Hibernate中的引用列抛出错误

Hibernate中的引用列抛出错误
EN

Stack Overflow用户
提问于 2019-05-14 04:29:20
回答 1查看 30关注 0票数 0

用户实体具有与UserRole实体的OneToMany映射,即一个用户可以有多个角色ids。我收到以下错误:-

原因: org.hibernate.cfg.RecoverableException:在org.hibernate.mapping.Table(t_users)及其相关的超表和辅助表中找不到逻辑名称为: USER_ID的列

代码语言:javascript
复制
@Entity
@Table(name="T_USERS")
public class User {

    @Column(name="ID_COL")
    @Id
    @SequenceGenerator(name="s")
    private Integer userId;

    @Column(name="USER_NAME ")
    private String userName;

    @Column(name="USER_EMAIL")
    private String userEmail;

    @Column(name="PASSWORD")
    private String password;


    @Column(name="IS_ACTIVE")
    private Integer isActive;


    @OneToMany
      @JoinColumns(
                {
                  @JoinColumn(updatable=false,insertable=false, name="ID_COL", referencedColumnName="USER_ID"),
                }
                )
     private List<UserRole> userRole ;

// removed getters n setters for brevity
}

@Entity
@Table(name="T_MAP_USER_ROLES")
public class UserRole {

    @Column(name="MAP_ID")
    @Id
    @SequenceGenerator(name="seq_user_role")
    private Integer mapId;

    @Column(name="USER_ID")
    private Integer userId;

    @Column(name="ROLE_ID ")
    private Integer roleId;

    @Column(name="IS_ACTIVE")
    private Integer isActive;

      @OneToOne
      @JoinColumns(
                {
                  @JoinColumn(updatable=false,insertable=false, name="ROLE_ID", referencedColumnName="ROLE_ID"),
                }
                )
       private Role  role;

问题的原因是什么?我如何解决它?UserRole和角色实体之间的映射工作正常

EN

回答 1

Stack Overflow用户

发布于 2019-05-14 05:50:36

@JoinColumns仅用于复合外键。在这种情况下,您只需要@JoinColumn:

@OneToMany @JoinColumn(updatable=false,insertable=false,name="ID_COL")

另外,请注意,单列外键不需要"referencedColumnName“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56119489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档