【发布时间】:2019-08-05 12:42:22
【问题描述】:
我正在开发一个带有 spring 和 hibernate 的 RESTFUL Web 应用程序。我想创建一个与ROLE 实体有ManyToOne 关系的新USER 实体:
@Entity
@Table(name = "roles")
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long id;
@Column(unique = true)
private RoleEnum name;
}
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long id;
private String firstName;
private String lastName;
@ManyToOne
private Role role;
}
在前端 html 和 ajax 中,我设置了除 ids(USER 的 id 和 ROLE 的 id)之外的所有字段,并将 json 字符串发送到后端。这是示例 json:
{
"firstName": "john",
"lastName": "becks",
"role": {
"name": "STUDENT"
}
}
问题来了,我想将STUDENT 角色分配给数据库中存在的这个新USER,但我只知道它的名称而不是id。我从休眠中得到错误:
TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing
谁能帮忙解决这个问题?
提前致谢!
【问题讨论】: