级联类型=双方都

时间:2019-03-09 19:08:48

标签: spring hibernate spring-data-jpa hibernate-mapping

在一对多关系的两个方向上使用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<>();
}

编辑 如果我完全删除了层叠属性会发生什么?

这是一种好习惯吗?

0 个答案:

没有答案