java - 带有 @OneToMany 列的 orphanRemobval 错误
问题描述
我目前正在使用 SpringBoot 和 JPA 运行一个小应用程序。我有以下包含所有实体的文件:
@Entity
class User(
@Id var username: String,
var password: String,
@OneToOne(cascade = [CascadeType.ALL])
var basket : ShoppingCart = ShoppingCart()
)
@Entity
class Product(
@Id var name: String,
var quantity : Int = 0,
var price: Double = 0.0
)
@Entity
class CartItem(
@Id @GeneratedValue var id : UUID? = null,
@ManyToOne var product : Product,
var quantity : Int = 0
)
@Entity
class ShoppingCart(
@Id @GeneratedValue var id : UUID? = null,
@OneToMany(cascade=[CascadeType.REMOVE], orphanRemoval = true)
var cartItems: MutableSet<CartItem> = mutableSetOf()
)
一切正常,但是每当我想删除 CartItem(属于 ShoppingCart)时,我都会遇到外键违规错误。这是因为指向生成的 shopping_cart_cart_items 的 cart_item.id 的外键具有 ON DELETE RESTRICT。我希望这个生成的表有 ON DELETE CASCADE 而不是 ON DELETE RESTRICT。
你知道我的问题在哪里吗?
非常感谢 !
解决方案
推荐阅读
- asp.net-core - (Blazor)为什么儿童剃须刀组件不起作用?
- c - 无法使用双指针为结构字段赋值?(C)
- java - 在现有的 spring DI 应用程序上添加 Guice DI
- flutter - 颤振录音
- flutter - 覆盖内的颤动可滚动列表
- flutter - 使用条件自动填充 textformfield 控制器
- python - 如何根据Django中的今天当前日期过滤日期?
- javascript - 您的全局 Angular CLI 版本 (10.2.0) 高于本地版本 (10.0.8)。使用本地 Angular CLI 版本
- nginx - flask+ngix+uwsgi 没有从路由 ubuntu 20 中剥离脚本根目录
- resize - 如何调整 nifti(nii.gz 医学图像)文件的大小