OneToMany 关系不会将所有者实体的 id 保存在辅助实体中

问题描述 投票:0回答:1

我试图在 postgres 中保存 2 个实体,ConfigurationScreenConfiguration可以有多个Screen,则为

oneToMany
,一个Screen可以有1个Configuration,则为
manyToOne
。我正在使用
JPA
来保存这些实体。我遇到的问题是,在 Screen 表中,configuration_id 关系未保存。这是我的代码:

@Data
public class Configuration  {

@Id
private String id = UUID.randomUUID().toString();

@OneToMany(mappedBy = "id_configuration", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private List<Screen> screen;

还有这个

@Table
@Entity
@Data
public class Screen {

private String status;

@JoinColumn(name = "configuration_id")
@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private Configuration configuration;

当我创建一个新的Configuration时,我指示应创建的Screen,除了“id”字段(它是随机创建的配置ID)

除了 (id_configuration) 字段外,ConfigurationScreen 中的数据都保存得很好。 Screen表中有一个configuration_id字段,但它始终为空且从未填充。为什么会发生这种情况?我指示的是级联类型 ALL,并且关系格式良好。

java postgresql jpa one-to-many many-to-one
1个回答
0
投票

由于像这样的教程:https://www.baeldung.com/hibernate-one-to-many

我猜你的模型中的问题是

mappedBy
中的
@OneToMany
。在你的情况下,它应该指向映射此关系的类字段。

所以应该是:

@OneToMany(mapped_by = "configuration", ...)

© www.soinside.com 2019 - 2024. All rights reserved.