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

标签 java hibernate jpa

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

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

getInt() can not parse to 'userLoginName'.

表格:

用户:

user_id int(11)
login_name varchar(50)
password varchar(50)
status varchar(1)

用户角色:

user_role_id int(11)
login_name varchar(50) #fk
user_role_name varchaar(100)

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

最佳答案

我假设您想通过 login_name 字段加入。

试试这个:

用户角色实体

@ManyToOne
@JoinColumn(name = "login_name", referencedColumnName = "login_name")
private User user;

用户实体

@OneToMany(mappedBy = "user")
private Set<UserRole> roles;

关于java - @OneToMany 映射的 Hibernate 用户字符串字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42345560/

相关文章:

java - WSDL 文件在浏览器中加载,但不在代码中加载

java - 从具有对象 "Field"的私有(private)字段获取值。 java

java - 具有多个数据库的 JPA (Hibernate)

java - 如何在 spring 项目中使用自定义注释(hibernate)加密/解密数据

java - 如何将 Java 程序转换为 .exe 文件?

java - 拆分后从 Camel 路由获取原始消息

java - ChangeListener 功能用于检查带有时间延迟/或其他解决方案的键入值

java - 如何查找 BindingResult 中的错误原因

java - Hibernate 7.0.2 : javax. 验证.NoProviderFoundException

JPA 在运行时动态使用多个数据库模式