【发布时间】:2021-09-14 05:34:34
【问题描述】:
我有一个通过@RepositoryRestResource 来自spring-data-rest-api 的rest api。当我尝试从 Postman 提供 json 有效负载以创建链接到组织的用户时,它抱怨 Column 'organizationId' cannot be null,当我在 json 中明确提供它时。
{
"firstName": "Test",
"lastName": "User",
"email": "user@example.com",
"phoneNumber": "+12019582790",
"organizationId": "22bf93a5-e620-4aaf-8333-ad67391fb235",
"password": "example123",
"role": "admin",
}
每个用户都属于一个组织,因此是多对一的关系。我希望 Java 将用户所属的组织作为组织对象映射到用户中。
User.java:
@Entity
@Table(name="user")
public class User {
@ManyToOne(targetEntity = Organization.class, fetch = FetchType.EAGER)
@JoinColumn(name = "organizationId", nullable = false)
private Organization organization;
}
Organization.java:
@Entity
@Table(name = "organization")
public class Organization {
@Id
@GeneratedValue(generator = "id-generator")
@Type(type = "uuid-char")
@Column(name="organizationId")
private UUID organizationId;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "organization")
private Set<User> users;
}
非常感谢任何帮助。
【问题讨论】:
-
嗨,
Organization的属性上有 getter/setter 吗?例如setOrganizationId和getOrganizationId?在您发布的课程中没有。 -
您在输入有效负载中有它,但您是否在代码中将其设置为该列?
-
是的,我有使用 lombok 的 getter 和 setter。当有效负载命中其余资源时,它应使用
organizationId字段通过 id 查找组织并将其包含在用户中,同时将 UUID 作为外键保存在 mySQL 中的用户表中。 -
您是否尝试将 JSON 从
"organizationId": "22bf93a5-e620-4aaf-8333-ad67391fb235",修改为"organization": {"organizationId": "22bf93a5-e620-4aaf-8333-ad67391fb235"},?
标签: java hibernate spring-data-rest quarkus