2.spring-data-jpa级联注解

文章目录

  • 博客概述
  • 注解

博客概述

本文主要讲的是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。

你可能感兴趣的:(java技术栈)