我有这样的类结构
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/