我试图保存在postgres 2实体,* 配置 * 和 * 屏幕 。 配置 * 可以有许多 * 屏幕 *,然后是oneToMany
,一个 * 屏幕 * 可以有一个 * 配置 *,然后是manyToOne
。我使用JPA
来保存这些实体。我的问题是,在 * 屏幕**表,*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;
型
当我创建一个新的 * 配置 * 时,我指示除了'id'字段之外应该创建的 * 屏幕 (它的配置id是随机创建的)
数据在Configuration和Screen都保存得很好,除了那个(id_configuration)字段。***Screen表中有一个configuration_id**字段,但是它总是空的,从来没有填充过。为什么会这样?我指示级联类型ALL,关系格式良好。
1条答案
按热度按时间rqcrx0a61#
由于教程喜欢:https://www.baeldung.com/hibernate-one-to-many
我猜你的模型中的问题是
@OneToMany
中的mappedBy
。在你的例子中,它应该指向Map这个关系的类字段。所以应该是:
@OneToMany(mapped_by = "configuration", ...)