каскадный тип = все с обеих сторон - PullRequest
0 голосов
/ 09 марта 2019

Каковы недостатки использования cascadetype = all в обоих направлениях в отношении «один ко многим»?

У меня есть класс отдела и буквенный класс (каждая буква находится в одном отделе) Когда я использую атрибут cascade на стороне отдела, я могу добавить новую букву, но я не могу ее отредактировать, когда я заменяю ее на сторону буквы, я могу редактировать существующую букву, но я ' я не могу добавить новый

Если у вас есть какая-либо хорошая ссылка для понимания использования каскадных типов, пожалуйста, отошлите мне ее

И я действительно застрял с этой проблемой, заранее спасибо

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<>();
}

EDIT Что произойдет, если я полностью уберу каскадный атрибут?

Это хорошая практика или нет?

...