欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

2.spring-data-jpa级联注解

程序员文章站 2022-05-01 23:13:08
...

文章目录

博客概述

本文主要讲的是spring-data-jpa的及联注解使用。在项目中遇到了一个问题,积累到了这个知识点,所以记录下来,当时异常为:

Caused by: org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing

错误原因是,如果A持有B对象的多个引用,那么插入的时候,直接插入是会报错的,因为A对象游离,B对象不能作出数据库数据的准确对应。我们想做的是级联插入,插入A,就会插入关联的B。就需要用到级联注解了。

注解

具体的注解有5个分别是:

  • CascadeType.PERSIST:级联新增,保存父对象时会新建其中包含的子对象。
  • CascadeType.MERGE:级联修改,保存父对象时会更新其中所包含的子对象数据。
  • CascadeType.REMOVE:级联删除,当删除关联关系时会将子对象的数据删除。这个操作用好了,可以省好多事。不用费劲去删除关联数据。
  • CascadeType.REFRESH:级联刷新,保存关联关系时会更新子对象和数据库中一致(意思是你在父对象中添加一个只包含ID的子对象,也可以保存进去)
  • CascadeType.ALL 包含上述的所有。
    一般来说,比较实用的是PERSIST和REMOVE。