首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JAVA 拾遗--JPA 二三事

使用 orphanRemoval 来删除值对象 你可能有两个疑问:1 在实际项目中,不是不允许对数据进行物理删除吗? 2 删除对象还不简单,JPA 自己不是有 delete 方法吗?...第二点就有意思了,delete 不就可以直接删除对象吗,为什么需要介绍 orphanRemoval 呢? 以活动和礼包这个一对多的关系来举例。...JoinColumn(name = "activity_id") private Activity activity; } 这是一个再简单不过的一对多关系了,唯一可能觉得陌生的便是这个属性了 orphanRemoval...如果想要删除某个活动下的某个礼包,在没有 orphanRemoval 之前,你只能这么做: GiftPackVoRepository.delete(GiftPackVo); 但其实这违反了 DDD 中的聚合根模式...使用 orphanRemoval 便可以完成这一操作,它表达这样的含义:内存中的某个 Activity 对象属于持久化态,对 List的移除操作,将被直接认为是删除操作。

1.9K100

Hibernate学习笔记 多表映射

我们在文章实体类中添加如下一段,对应的Getter省略了: @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true) private...orphanRemoval指定当出现孤立数据时是否删除孤立数据。cascade指定了级联操作的类型,这里使用ALL允许所有操作。...单向的一对多映射并不高效,如果删除了某文章的某评论,Hibernate进行的操作是这样:首先删除关联表中该文章关联的所有评论,然后再将其他评论添加回关联表中,最后,根据orphanRemoval决定是否删除评论表中孤立的评论...@OneToMany(mappedBy = "author", cascade = CascadeType.ALL, orphanRemoval = true) private List<Comment...@OneToOne(mappedBy = "author", cascade = CascadeType.ALL, orphanRemoval = true) private Avatar avatar

1.5K10
您找到你想要的搜索结果了吗?
是的
没有找到

Spring Data JPA 就是这么简单

classRoomRepository.delete(classRoom); });; } 下面讲一下另一种解决办法,该方法不推荐: 教室类在@OneToMany 中添加一个属性 orphanRemoval...= true 教师类关键代码如下所示: @OneToMany(mappedBy = "classRoom",orphanRemoval = true) @JsonIgnore...orphanRemoval 使用细则 orphanRemoval 这个属性只存在两类关系注解中 @OneToOne 和 @OneToMany jpa 为什么把这个注解仅仅只放在这两个关系类注解中呢?...mappedBy 细节分析 使用 mappedBy 的一方是放弃主键的维护的,当在使用 mappedBy 的一方进行级联操作的时候有些细节你应该知道: 通常 mappedBy 在处理级联删除的时候使用 orphanRemoval...属性就好,当然在@ManyToMany 这个注解当中是没有 orphanRemoval 这个属性的,还是需要使用自己的级联删除属性的。

6.8K50

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券