我有一个 Spring 应用程序,其中包含 2 个具有多对多关系的实体。有学生和团体。一个学生可以是许多组的一部分,一个组可以有许多学生。
学生模特
@Entity
@Table(name = "STUDENTS")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
@JsonIdentityInfo(
generator = ObjectIdGenerators.PropertyGenerator.class,
property = "id")
public class Student extends AbstractUser {
//Fields
@ManyToMany(fetch = FetchType.LAZY, targetEntity = Group.class)
@JoinTable(name = "GROUPS_STUDENTS",
joinColumns = { @JoinColumn(name = "student_id") },
inverseJoinColumns = { @JoinColumn(name = "group_id") })
private List<Group> groups = new ArrayList<Group>();
//Constructors
public Student(String password, String firstName, String lastName, String email){
super(password, firstName, lastName, email);
}
public Student(){
}
//Setters and getters
public List<Group> getGroups() …Run Code Online (Sandbox Code Playgroud) 我有删除到多对一关系的多方面的问题。我已经从关系中删除了所有CascadeTypes,但问题仍然存在。该条目不会被删除(只执行选择,不执行删除查询)。我正在尝试通过 CRUD 存储库调用删除它来删除它。它调用该方法并成功执行但没有任何反应。
关系如下:一个活动有一个分配的课程,一个课程可以有许多分配给它的活动。一个 Activity 有一个特定的 ActivityType。
课程如下。
活动
public class Activity implements Item, Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
...
@ManyToOne
@JoinColumn(name = "type_id", nullable = false)
private ActivityType type;
@ManyToOne
@JoinColumn(name = "course_id", nullable = false)
@JsonSerialize(using = CustomCourseSerializer.class)
private Course course;
...
}
Run Code Online (Sandbox Code Playgroud)
课程
public class Course implements Item, Serializable {
...
@OneToMany(mappedBy = "course", fetch = FetchType.EAGER, targetEntity = Activity.class) //cascade = { CascadeType.MERGE, CascadeType.REFRESH, CascadeType.DETACH, …Run Code Online (Sandbox Code Playgroud)