Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用@OneToMany关系引发的"ConstraintViolationException:无法删除或更新父行“

使用@OneToMany关系引发的"ConstraintViolationException:无法删除或更新父行“
EN

Stack Overflow用户
提问于 2014-02-09 23:54:49
回答 1查看 1.2K关注 0票数 0

我与OneToMany的关系如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Entity
public class Curriculum {

    @OneToMany(cascade = CascadeType.ALL)
    private Set<WorkExperience> workExperiences;
        ...

下面是WorkExperience实体:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Entity
public class WorkExperience {
...

当我尝试删除WorkExperience时,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Override
public void deleteWorkExperience(long workExperienceId) {
  workExperienceRepository.delete(workExperienceId);
}

我得到以下例外:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 org.hibernate.exception.ConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (`bignibou`.`curriculum_work_experiences`, CONSTRAINT `FKFA6D4B9F8B68AA0C` FOREIGN KEY (`work_experiences`) REFERENCES `work_experience` (`id`))

我的问题如下:

  1. 如果我想保留联接表,即curriculum_work_experiences,我如何正确地删除一个WorkExperience?
  2. 我注意到,通过在on cascade delete中手动将fk设置为MySql,它正常工作,但我不确定JPA注释是如何实现我手动完成的.
EN

回答 1

Stack Overflow用户

发布于 2014-02-10 01:36:46

在这种情况下,孤儿移除是可行的。您不能通过使用workExperienceId直接删除它,因为它是单向连接表关系,而且数据库受外键引用完整性约束,您必须使用课程实体删除它,您需要获得设置workExperiences的引用并将其从该集合中删除,但首先要确保将orpanRemoval=true元素添加到@OneToMany注释中,如下所示,该属性强制删除联接表中的任何引用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Entity
public class Curriculum {

    @OneToMany(cascade = CascadeType.ALL, orphanRemoval=true)
    private Set<WorkExperience> workExperiences;
        ...
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21671700

复制
相关文章
JavaScript获得对象属性个数的方法
//扩展对象的count方法 Object.prototype.count = ( Object.prototype.hasOwnProperty(‘__count__’) ) ? fun
就只是小茗
2018/03/07
2K0
贴心 | Visual Studio 2019 空引用异常的改进
空引用异常是最常见的程序错误之一。微软昨天发布的VS2019对此有了非常贴心的改进,我们来看看吧!
Edi Wang
2019/07/09
1.3K0
贴心 | Visual Studio 2019 空引用异常的改进
早发arXiv可多获得65%的引用,但……
对研究人员来说,这么做主要有两个好处。一方面尽早占坑,另一方面可以绕过漫长的同行评议时间,加速圈内人交流工作进展。
量子位
2018/07/24
1.1K0
早发arXiv可多获得65%的引用,但……
Spring-引用Bean的属性值
将应用系统的配置信息存放在配置文件中并非总是最合适的,如果应用以集群的方式部署,或者希望在运行期动态调整引用的某些配置,这时,将配置信息放到数据库中不但方便集中管理,而且可以通过应用系统的管理界面动态维护,有效增强应用系统的可维护性。
小小工匠
2021/08/16
7300
Ubuntu“无法获得锁”解决方案(E: 无法获得锁 /var/cache/apt/archive)
[scode type="yellow"]Ubuntu “无法获得锁”解决方案(E: 无法获得锁 /var/cache/apt/archive)[/scode]
乐心湖
2020/07/31
1.8K0
Roslyn 如何获得一个类的引用
在 C# 代码里面,大部分的代码都是在开始定义了 using 引用命名空间,本文将告诉大家如何使用 Roslyn 分析获取类文件里面引用的命名空间
林德熙
2021/12/24
1.3K0
使用“空”对象替代引用是否为空判断
使用Null对象替代引用是否为空判断 编程语言中最常见运行时异常非NullPointerException莫属,只要程序依赖于外部的输入数据,比如说http请求传递的查询字符串参数、关系数据库连接、磁盘文件读取,空引用异常就无法避免。通常,程序需要满足某些条件才能正常的往下执行,假如这些条件依赖外部输入数据,而这些外部输入的数据肯定无法保证百分百不出错,比如说网络连接失败、数据库用户名密码错误等,当程序被这些节外生枝的障碍打断时,空引用异常就极有可能被引发。 比如说,原本我们调用一个方法,这个方法会执行连接
用户1608022
2018/04/11
7.6K0
C# 可为空引用类型
我对 C# 钟爱有加,我认为它严谨的语言设计非常棒。尽管如此,就目前而言,即使在 C# 版本 7 发布后,此语言也仍称不上完美。我这里指的是,尽管有理由期望 C# 会一直不断添加新功能,但遗憾的是,同时也存在着一些问题。
郑子铭
2023/08/29
1910
C# 可为空引用类型
Spring-属性文件自身的引用03
Spring既允许在Bean定义中通过{propName}引用属性值,也允许在属性文件中使用{propName}实现属性之间的相互引用。
小小工匠
2021/08/16
9770
E: 无法获得锁 /var/lib/dpkg/lock
Ubuntu下很常见的问题,标记一下。 u1@node:~# sudo apt-get install -y mysql-client mysql-server E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它? u1@node:~# sudo apt-get install -y mysql-client mysql-server E: 无法获得锁 /var/lib/dpkg/l
程裕强
2022/05/06
4420
源码审计之空指针引用漏洞
*本文原创作者:freezing,本文属FreeBuf原创奖励计划,未经许可禁止转载
FB客服
2018/07/30
1.3K0
源码审计之空指针引用漏洞
Nullable Reference Types 可空引用类型
但如果想避免NullReferenceException的发生,确实需要做很多麻烦的工作。
solenovex
2019/10/15
8190
Nullable Reference Types 可空引用类型
WPF 可获得焦点属性
本文来告诉大家 WPF 的可获得焦点属性,如果希望一个元素可以获得键盘输入,那么就需要一个元素是可以获得焦点,而且焦点就在元素上。
林德熙
2022/08/04
1.4K0
Qml引用Loader组件属性
  本例子使用Loader加载myComponent组件,然后通过Loader的item属性设置myComponent的value属性。
Qt君
2023/03/17
8530
Qml引用Loader组件属性
WPF 可获得焦点属性
本文来告诉大家 WPF 的可获得焦点属性,如果希望一个元素可以获得键盘输入,那么就需要一个元素是可以获得焦点,而且焦点就在元素上。
林德熙
2018/09/19
4.5K1
WPF 可获得焦点属性
解惑 | 为什么我根据时间戳获得的offset为空呢?
最近有一个需求,要查询某一时间戳对应的offset值,于是就想到了使用 ./bin/kafka-run-class.sh kafka.tools.GetOffsetShell --time <timestamp> ,但是我在测试的时候,发现有的时间戳会获取不到offset,是空。但是明明指定的时间戳有上报数据,肯定有对应的 offset 的。于是就谷歌,找到了这篇帖子:
create17
2020/09/24
2.8K0
HTML的 script 标签引用js文件及其属性整理
在 HTML 页面中,可以通过 <script> 标签插入 JavaScript 代码,也可以引用外部 js 文件。
德顺
2019/11/13
10.7K0
HTML的 script 标签引用js文件及其属性整理
V8 引擎空指针引用漏洞的新型利用技术
去年,英国国家网络安全中心(NCSC)报告了一个V8编译器中存在的安全漏洞,随后Google便悄悄修复了该漏洞。这个漏洞ID为1003286,漏洞的具体信息可以点击【阅读原文】获取。根据漏洞报告的描述,这是一个空指针解除引用DoS漏洞,这个漏洞是一个不可利用的漏洞,并且只能通过WASM代码来触发。在深入分析之后,我们发现这里还有另一种触发该漏洞的方式,并且能够通过V8 JIT编译器进程来利用该漏洞实现攻击。
FB客服
2020/11/16
7070
V8 引擎空指针引用漏洞的新型利用技术
解决Oracle11g空表无法导出的问题[通俗易懂]
Oracle11g 新增參数deferred_segment_creation ,建库的时候默认值为true,意思是延时载入,当表中不存在数据的时候,不为这个表创建空间,当你导出的时候会发现非常多表不存在
全栈程序员站长
2022/07/10
8030
解决Oracle11g空表无法导出的问题[通俗易懂]
点击加载更多

相似问题

无法获得未定义或空引用的属性

10

无法获得未定义或空引用的属性“getSouthWest”

12

无法获得未定义或空引用的属性“queryselectorall”

11

无法获得未定义或空引用的属性“替换”?

30

无法获得未定义或空引用的属性“CategoryColor”

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文