我有一个简单的电子商务 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/