在一对多关系的两个方向上使用cascadetype = all有什么缺点?
我有一个部门班和一个字母班(每个字母都在一个部门中) 当我在部门方面使用层叠属性时,我可以添加一个新字母,但不能对其进行编辑,当我将其替换为字母方面时,我可以编辑一个现有字母,但是我可以我无法添加新的
如果您对了解级联类型的用法有很好的参考,请参考
我真的很困扰这个问题,在此先感谢
public class Department {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "dept")
private int id;
@Column(length = 512)
private String name;
@OneToMany(mappedBy = "department", cascade = CascadeType.ALL)
@JsonIgnore
private Set<ActiveUser> activeUsers;
@OneToMany(mappedBy = "department", cascade = CascadeType.ALL)
@JsonIgnore
private Set<Letter> letters;
}
public abstract class Letter {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq")
private Long id;
@NotNull(message = "{field.null}")
private Long number;
@NotNull(message = "{field.null}")
@ManyToOne
private Department department;
@ManyToMany(cascade={CascadeType.ALL})
@JoinTable(name="SENT_RECEIVED",
joinColumns={@JoinColumn(name="LETTER_ID")},
inverseJoinColumns={@JoinColumn(name="LINKED_ID")})
private Set<Letter> links = new HashSet<>();
@ManyToMany(mappedBy="links")
private Set<Letter> letters = new HashSet<>();
}
编辑 如果我完全删除了层叠属性会发生什么?
这是一种好习惯吗?