Hibernate one to one mapping. Delete row from dependent table(休眠一对一映射。从依赖表中删除行)
本文介绍了休眠一对一映射。从依赖表中删除行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
表:学生、地址 Student.ADDR_ID列映射到Address.ID我的学生课堂上的注释如下
public class Student {
String name, surname;
int rollNumber;
Teacher classTeacher;
Address address;
@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name="ADDR_ID")
public Address getAddress() {
return address;
}
:
:
在创建和更新案例时运行良好。
如果我将学生的地址更改为新的,则会创建一个新行,但不会删除旧地址的行。 如果仍将地址设置为空,则不会删除例如
Student s1 = session.get(Student.class, 24);
Address addr = new Address();
session.save(addr);
s1.setAddress(addr);
session.save(s1);
or
Student s1 = session.get(Student.class, 24);
s1.setAddress(null);
我已将CASCADE ALL设置。需要做哪些额外的/不同的工作。反转是否适用于此?
推荐答案
如果满足需要,您应该使用orphanremoval = true
@OneToOne(cascade=CascadeType.ALL, orphanRemoval=true)
@JoinColumn(name="ADDR_ID")
public Address getAddress() {
}
这篇关于休眠一对一映射。从依赖表中删除行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:休眠一对一映射。从依赖表中删除行
猜你喜欢
- 如何使用WebFilter实现授权头检查 2022-01-01
- Safepoint+stats 日志,输出 JDK12 中没有 vmop 操作 2022-01-01
- Eclipse 插件更新错误日志在哪里? 2022-01-01
- Jersey REST 客户端:发布多部分数据 2022-01-01
- value & 是什么意思?0xff 在 Java 中做什么? 2022-01-01
- 从 finally 块返回时 Java 的奇怪行为 2022-01-01
- 将log4j 1.2配置转换为log4j 2配置 2022-01-01
- Spring Boot连接到使用仲裁器运行的MongoDB副本集 2022-01-01
- C++ 和 Java 进程之间的共享内存 2022-01-01
- Java包名称中单词分隔符的约定是什么? 2022-01-01
