java Hibernate一对一映射。从依赖表中删除行
表格:学生、地址 大学生ADDR_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;
}
:
:
它在创建和更新案例中工作良好
如果我将学生的地址更改为新地址,那么它将创建一个新行,但不会删除旧地址的行。 如果我将地址设置为null,它仍然不会删除
例如
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);
我把一切都安排好了。需要做哪些额外/不同的工作。这里是否适用反向法
# 1 楼答案
在我的例子中,一对一删除级联不起作用,因为没有使用事务。在这里它工作得很好
# 2 楼答案
如果
orphanremoval = true
对您来说足够的话,您应该使用它