我有这种类
的结构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
。
如果用户添加和删除值,我不知道如何管理保存。
从客户端,
添加新的ID时,CarClassJoins
的ID为空...但不会发送用户想删除的内容。
我需要在CarElementClasses
上保存。
是否有一个策略在jpa中每次都自动重建关系的所有元素?
答案 0 :(得分:2)
请尝试以下操作。
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;
级联选项会将对实体的操作链接到相关实体。对于mor信息:https://en.wikibooks.org/wiki/Java_Persistence/Relationships#Cascading
@ID和@GeneratedValue组合将在实体持续存在时生成id。