用户实体具有与UserRole实体的OneToMany映射,即一个用户可以有多个角色ids。我收到以下错误:-
原因: org.hibernate.cfg.RecoverableException:在org.hibernate.mapping.Table(t_users)及其相关的超表和辅助表中找不到逻辑名称为: USER_ID的列
@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和角色实体之间的映射工作正常
发布于 2019-05-14 05:50:36
@JoinColumns仅用于复合外键。在这种情况下,您只需要@JoinColumn:
@OneToMany @JoinColumn(updatable=false,insertable=false,name="ID_COL")
另外,请注意,单列外键不需要"referencedColumnName“。
https://stackoverflow.com/questions/56119489
复制相似问题