【问题标题】:Reference Column throwing error in HibernateHibernate 中的参考列抛出错误
【发布时间】:2019-05-13 20:29:20
【问题描述】:

用户实体具有与 UserRole 实体的 OneToMany 映射,即 1 个用户可以有多个 Role id。 我收到以下错误:-

原因:org.hibernate.cfg.RecoverableException:无法找到 具有逻辑名称的列:USER_ID in org.hibernate.mapping.Table(t_users) 及其相关的超级表和 辅助表

@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 和 Role 实体之间的映射工作正常

【问题讨论】:

    标签: spring hibernate spring-boot spring-data-jpa


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-06-04
      • 2012-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-30
      • 2012-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多