나는이 수업을 가지고 있습니다.일대일 관계 삭제
@Entity
@Table(name ="a")
class A{
private Integer aId;
private B b;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id_a")
public Integer getAId() {
return aId;
}
@OneToOne(mappedBy = "a", cascade={CascadeType.ALL})
public B getB() {
return b;
}
}
@Entity
@Table (name= "b")
class B{
private A a;
@OneToOne
@JoinColumn(name = "id_a")
public A getA() {
return a;
}
}
그리고 표는 다음과 같다 :
A) | id_A | .... 다른 필드 ... |
B) | id_B | fk_id_A | .. 다른 필드 .. |
하지만,이 인스턴스를 삭제하려고하면, 내가 얻을
org.hibernate.ObjectDeletedException : 가 (삭제 된 개체를 제거합니다 삭제 된 개체는 계단식으로 다시 저장됩니다
: [B 번호 130]) 조합에서b.setA(null) a.setB(null)
제가 상호 참조에 널 설정 시도한
그러나 예외는 여전히 발생합니다.
내가 성취 한 모든 것은 A의 행을 삭제하고 B의 외래 키를 null로 남겨두고 B를 삭제하려고하면 같은 오류가 발생합니다.
이 내 삭제 코드 :
public static void delete(Object object) throws Exception {
Transaction tx = getSession().beginTransaction();
try {
getSession().delete(object);
tx.commit();
} catch (Exception ex) {
tx.rollback();
getSession().close();
throw ex;
}
}
getSession
내가 빠진 것이 있습니까?