我有2个课程/参赛作品,其中@OneToMany
和@ManyToOne
连在一起(双向)。
现在我的想法:如果我在一侧向集合中添加一个元素,那么它也在另一面上吗?
所以我做了这个解决方法:
/**
* use {@link Answer#setExercise(Exercise)} on child
*/
@Deprecated
public void addAnswer(Answer answer) {
this.answers.add(answer);
}
/**
* use {@link Answer#setExercise(Exercise, boolean)} on child
*/
@Deprecated
public void removeAnswer(Answer answer) {
this.answers.remove(answer);
}
弃用只是对我自己的警告
public void setExercise(Exercise exercise) {
setExercise(exercise, false);
}
@SuppressWarnings("deprecation")
public void setExercise(Exercise exercise, boolean remove) {
this.exercise = exercise;
if (!remove) {
exercise.addAnswer(this);
} else {
exercise.removeAnswer(this);
}
}
所以我想知道我是否基本上必须在JPA中做这样的事情(所有关系,如果我想要两种方式)。
接下来我想知道Spring-Boots存储库如何保存对象。他们只保存元素本身或所有关系(和背面关系)吗?
在Spring Boot中保存一个对象就足够了 - 两个关系都存储起来。