@OneToMany 映射的 Hibernate 用户字符串字段

Nan*_*khe 3 java hibernate jpa

我在Mysql中有2个表,一个是,user另一个是userRoles,都是项目中现有的表。当前外键是login_id(varchar)。

我可以在这两个表中创建@ManyToOne映射吗,我收到错误:

getInt() 无法解析为“userLoginName”。

表格:

用户:

用户 ID int(11)
登录名 varchar(50)
密码 varchar(50)
状态 varchar(1)

用户角色:

用户角色 ID int(11)
登录名 varchar(50) #fk
用户角色名称 varchaar(100)

如果没有其他解决方案,是否有任何方法可以使用 String 进行映射?由于现有项目具有相同的数据库,我无法更改其数据类型。我正在使用 Hibernate 创建支持项目。

Mac*_*ski 5

我猜你想加入现场login_name

尝试这个:

用户角色实体

@ManyToOne
@JoinColumn(name = "login_name", referencedColumnName = "login_name")
private User user;
Run Code Online (Sandbox Code Playgroud)

用户实体

@OneToMany(mappedBy = "user")
private Set<UserRole> roles;
Run Code Online (Sandbox Code Playgroud)