【问题标题】:Column 'foreign_key_id' cannot be null列“foreign_key_id”不能为空
【发布时间】: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 吗?例如setOrganizationIdgetOrganizationId?在您发布的课程中没有。
  • 您在输入有效负载中有它,但您是否在代码中将其设置为该列?
  • 是的,我有使用 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


【解决方案1】:

这是我最终采用的方法。仍然想知道为什么 @ManyToOne 注释没有将 organizationId 作为外键单独保存在 User 表中。

User.java

@Type(type = "uuid-char")
@Column
private UUID organizationId;

@ManyToOne
@JoinColumn(name = "organizationId", insertable = false, updatable = false)
private Organization organization;

【讨论】:

    猜你喜欢
    • 2021-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2019-07-10
    • 2020-06-12
    • 2019-12-29
    • 1970-01-01
    相关资源
    最近更新 更多