繁体   English   中英

JPA 从多对多关系列表中删除一个条目

[英]JPA delete an entry from list in Many-To-Many relationship

这些是我的课。 我想从likeCourses中删除项目。 所以我希望 JPA 从course_like表中删除项目。 我查看并尝试从其他示例中理解,但无法理解。 当存在关系时,就像 JPA realm 中不存在删除一样。 不过还是不错的选择。 我想分享我尝试过的东西,但我找不到任何关于它的东西。

注意:我看到在 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;
}

如果要从course_like表中删除条目,则必须加载Student并从应该删除的likedCourses集中删除元素。 如果您在@Transactional方法中执行此操作,您将看到 Hibernate 将发出delete语句以删除表示从likedCourses集中删除的对象的行。 这就是 ORM 的魔力,它将 object 图与数据库同步,无需您告诉它发出语句 A、B、...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM