gpt4 book ai didi

postgresql - 使用表关联时保存多对多关系的策略

转载 作者:行者123 更新时间:2023-11-29 14:34:50 25 4
gpt4 key购买 nike

我有这样的类结构

CarElementClasses
Integer id
@OneToMany(mappedBy = "carElementClass")
private List<CarClassJoins> carClassJoins;

CarClassJoins
Integer id
@ManyToOne
@JoinColumn(name = "car_element_class_id", referencedColumnName="id")
private CarElementClasses carElementClass;

@ManyToOne
@JoinColumn(name = "car_param_id", referencedColumnName="id")
private CarParams carParam;
private String default;

CarParams
Integer id
String name
@OneToMany(mappedBy = "carParam")
private List<CarClassJoins> carClassJoins;

CarElementClasses 与carParams 是多对多关系,CarClassJoins 是表关联。

当显示CarElementClasses时,用户可以修改、删除一个CarClassJoins

如果用户添加和删除值,我不知道如何管理保存。

从客户端,

当添加新的时,CarClassJoins 的 id 为空...但未发送用户要删除的一个。

我需要在 CarElementClasses 上进行保存。jpa 中是否有策略每次都自动重新创建关系的所有元素?

最佳答案

尝试以下操作。

CarElementClasses
Integer id
@OneToMany(mappedBy = "carElementClass", cascade = CascadeType.ALL)
private List<CarClassJoins> carClassJoins;

CarClassJoins
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Integer id
@ManyToOne
@JoinColumn(name = "car_element_class_id", referencedColumnName="id")
private CarElementClasses carElementClass;

@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "car_param_id", referencedColumnName="id")
private CarParams carParam;
private String default;

级联选项会将对实体进行的操作链接到相关实体。更多信息:https://en.wikibooks.org/wiki/Java_Persistence/Relationships#Cascading

当实体持续存在时,@ID 和@GeneratedValue 组合将生成 id。

关于postgresql - 使用表关联时保存多对多关系的策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46797996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com