spring-data-jpa JPA从多对多关系中列表中删除条目

5m1hhzi4  于 2022-11-10  发布在  Spring
关注(0)|答案(1)|浏览(146)

这些是我的类。我想从likedCourses中删除项。所以我希望JPA从course_like表中删除项。我从其他示例中查找并尝试理解,但无法理解。这就像在JPA领域中存在关系时不存在删除。尽管这对选择很好。我想分享我尝试过的内容,但我找不到任何有关它的信息。
注意:我发现在ManyToMany关系中没有orphanRemoval选项。

@Entity
class Student {

    @Id
    Long id;

    @ManyToMany
    @JoinTable(
    name = "course_like", 
    joinColumns = @JoinColumn(name = "student_id"), 
    inverseJoinColumns = @JoinColumn(name = "course_id"))
    Set<Course> likedCourses
}

@Entity
class Course {

    @Id
    Long id;

    @ManyToMany(mappedBy = "likedCourses")
    Set<Student> likes;
}
8nuwlpux

8nuwlpux1#

如果你想从course_like表中删除一个条目,你必须加载Student,并从likedCourses集合中删除该元素。您将看到Hibernate将发出delete语句来删除表示从likedCourses集合中删除的对象的行。ORM的神奇之处在于,它使对象图与数据库同步,而无需您告诉它发出语句A、B ...

相关问题