hibernate - 我在 grails 中遇到完整性违规异常。如何级联删除到grails中的相关

我有一个简单的电子商务 grails 5 应用程序,我在其中将 CartItem 定义为:

class CartItem {
Customer customer
Product product
Integer quantity}

我有产品类别:

class Product {
String name
Double price }

当一个产品被删除时,拥有这个产品的cartItem(如果有的话)也必须被删除。 (这同样适用于客户)。 现在,当我删除产品时,如果此产品有 cartItem,我会收到完整性违规异常。

我正在使用 Hibernate 和 H2 内存数据库。如果不使用 hibernate 配置(除非这是唯一的方法),我如何使用 grails GORM 实现产品删除级联以自动删除关联的 cartItem 删除行为?

当客户将产品添加到购物车时,会创建一个 CartItem 实例。

删除 cartItem 时(从购物车中移除产品时)相关产品或客户不会发生任何变化。但是当一个产品被删除时,其关联的 cartItem 也必须被删除。

最佳答案

CartItem 不属于 Product。因此,Grails 无法在删除 Product 时删除它。但是您可以利用 grails 域类事件 - “beforeDelete”。

https://docs.grails.org/3.0.x/guide/GORM.html#eventsAutoTimestamping

关于hibernate - 我在 grails 中遇到完整性违规异常。如何级联删除到grails中的相关实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72262237/

相关文章:

python - 最大方程长度

node.js - 如何在工作区中使用 npm-shrinkwrap?

amazon-web-services - 如何找出弹性 beantalk 部署失败的原因?

azure - 我正在将 AddMicrosoftIdentityWebApi .net core

angular - 如何重置表单中的特定字段?

rust - 为什么 cargo build 在 git 更改锁时忽略锁文件?

laravel - 对 Laravel Controller 策略中的 $this->authori

google-cloud-platform - 为什么 Airflow PubSubPullOper

visual-studio - 如何一次查找和替换多个不同的键值对?

mysql - 运行 mysql_secure_installation 时出现错误