Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 为什么我能';不能以级联方式删除数据?_Spring Boot_Spring Data Jpa_Cascade - Fatal编程技术网

Spring boot 为什么我能';不能以级联方式删除数据?

Spring boot 为什么我能';不能以级联方式删除数据?,spring-boot,spring-data-jpa,cascade,Spring Boot,Spring Data Jpa,Cascade,问题是,当我想删除用户时,我在Spring Boot中遇到如下错误: java.sql.SQLIntegrityConstraintViolationException:无法删除或更新父行:外键约束失败(32506632\u pambadge,约束FK4aamfo6o0h5ejqjn40fv40jdw外键(user\u id)引用user(id) 我猜我需要以级联方式删除数据。因此,我将CascadeType.REMOVE值这样放置到@OneToOne注释中,但它不起作用: 徽章实体 @实体 @

问题是,当我想删除用户时,我在Spring Boot中遇到如下错误:

java.sql.SQLIntegrityConstraintViolationException:无法删除或更新父行:外键约束失败(
32506632\u pam
badge
,约束
FK4aamfo6o0h5ejqjn40fv40jdw
外键(
user\u id
)引用
user
id

我猜我需要以级联方式删除数据。因此,我将CascadeType.REMOVE值这样放置到@OneToOne注释中,但它不起作用:

徽章实体

@实体
@资料
@表(name=“badge”)
@AllArgsConstructor
@诺尔格构装师
公众阶级徽章{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
私人长id;
@JsonManagedReference
@ManyToMany(mappedBy=“badges”,fetch=FetchType.LAZY)
私人列表阅读器;
@OneTONE(级联=级联类型.REMOVE,孤立移除=true)
@JoinColumn(name=“user\u id”)
私人用户;
私有字符串编号;
@高球
@基本(fetch=FetchType.LAZY)
私有字节[]照片;
}
用户实体

@实体
@资料
@表(name=“user”)
@AllArgsConstructor
@诺尔格构装师
公共类用户{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
私人长id;
私有字符串名称;
私有字符串lastname;
私有字符串pesel;
私人字符串电子邮件;
专用串电话;
私人整数年龄;
私人字符串性别;
}
读卡器实体

@实体
@资料
@表(name=“reader”)
@AllArgsConstructor
@诺尔格构装师
公共类阅读器{
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
私人长id;
@JsonBackReference
@ManyToMany(fetch=FetchType.LAZY)
私人名单徽章;
私人弦乐部;
私人弦乐室;
私有布尔状态;
}
加载初始数据的类

@组件
公共类DataLoader实现ApplicationRunner{
@自动连线
私人用户服务;
@自动连线
私人徽章服务;
@自动连线
私人阅读服务;
@凌驾
公共void运行(ApplicationArguments参数)引发异常{
User user1=新用户(null,“Jan”、“Kowal”、“11111”jan@kowal.pl“,“+48111111”,新整数(23),“男性”);
userService.saveUser(user1);
Reader reader1=新读取器(null,null,“仓库”,“207A”,新布尔值(“true”);
Badge badge1=新的Badge(null,Arrays.asList(reader1),user1,“738604289120”,null);
badgeService.saveBadge(badge1);
reader1.setBadges(Arrays.asList(badge1));
readerService.saveReader(reader1);
}
}
删除用户的端点-它使用扩展Crudepository的存储库,并使用默认的删除行为

@DeleteMapping(“/deleteUserById/{id}”)
私有void deleteUserById(@PathVariable Long id){
userService.deleteUserById(id);
}
phpmyadmin中的数据库结构

我的目标是删除用户及其关联的徽章,然后删除reader_badges表中的行