我的学生课堂上的注释如下
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() {
}