为了账号安全,请及时绑定邮箱和手机立即绑定

多对多删除集 NULL

多对多删除集 NULL

倚天杖 2021-09-12 20:36:25
我在连接表中具有附加列的用户和组之间存在多对多关系。它看起来像这样:当我删除一个用户时,它应该从 user_to_group(有效)中删除他的所有引用,并且他创建的所有组都应该保留,并将其 created_by 字段更新为 NULL(这不会发生,所有条目都被删除)。模式的 DDL:CREATE TABLE user (    user_id int NOT NULL AUTO_INCREMENT,    first_name varchar(100) NOT NULL,    last_name varchar(100) NOT NULL,    username varchar(100) NOT NULL,    email_address varchar(100) UNIQUE NOT NULL,    phone_number varchar(100) NOT NULL,    password varchar(255) NOT NULL,    notification_type varchar(30) NOT NULL DEFAULT "email",    date_created datetime NOT NULL,    is_active bool NOT NULL DEFAULT false,    CONSTRAINT user_pk PRIMARY KEY (user_id));CREATE TABLE `group` (    group_id int NOT NULL AUTO_INCREMENT,    name varchar(100) NULL,    date_created datetime NOT NULL,    is_private bool NOT NULL DEFAULT false,    created_by int NULL,    CONSTRAINT group_pk PRIMARY KEY (group_id),    CONSTRAINT group_user_fk FOREIGN KEY(created_by)        REFERENCES user (user_id) ON DELETE SET NULL);CREATE TABLE user_to_group (    user_id int NOT NULL,    group_id int NOT NULL,    user_type_id int NOT NULL,    is_blocked bool NOT NULL DEFAULT false,    CONSTRAINT user_to_group_pk PRIMARY KEY (user_id,group_id),    CONSTRAINT user_to_group_group_fk FOREIGN KEY(group_id)        REFERENCES `group` (group_id),    CONSTRAINT user_to_group_user_type_fk FOREIGN KEY(user_type_id)        REFERENCES user_type (id),    CONSTRAINT user_to_group_user_fk FOREIGN KEY(user_id)        REFERENCES user (user_id));
查看完整描述

1 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

@ManyToOne(fetch = FetchType.LAZY,

        cascade = CascadeType.ALL)

@MapsId("groupId")

@JoinColumn(name = "group_id", insertable = false, updatable = false)

private Group group;

excludeCascadeType.REMOVE和 group 将完好无损。



查看完整回答
反对 回复 2021-09-12
  • 1 回答
  • 0 关注
  • 174 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信