2013-03-05 5 views
1

내 요구 사항은 부모를 삭제할 때 자식을 삭제해서는 안되지만 자식을 삭제하는 대신 외래 키인 자식 열 department_ID 중 하나를 업데이트해야합니다 부서 (부모 테이블) 많은 직원과 직원 (자식 테이블) 테이블을 가지고 외래 키 열로 Department_ID있다. 문제는 내가 부모 테이블을 삭제할 때 직면하고 아무것도 아이가 원인에 반영되지 않습니다 내가 만들었습니다 updatable=false 만약 사실이라면 다음 부모, 자식 열을 null로 설정됩니다 또는 부모 업데이트 할 경우 또한 자식 Department_Id 열은 null을 요구 사항을 위반하는 그래서 내가 왜 false로 만들 수 있습니다. 부모 업데이트 할 때 자식 업데이트 싶지 않아요. 변경 사항 만 삭제 작업에 반영되어야하며 한 열에 만 반영됩니다. 어떻게해야합니까? 감사부모가 삭제 될 때 자식을 업데이트하는 방법

이것은 이것은 당신이 추가 할 필요가 있으므로, 어린이 측 일대 다 관계를 maintian을 보자 내 아이 테이블 직원

@Id 
    @Column(name = "EMPLOYEE_NUMBER") 
    private int employeeNumber; 
    @Column(name = "FIRST_NAME") 
    private String firstName; 
    @Column(name = "LAST_NAME") 
    private String lastName; 

    @Column(name = "DEPARTMENT_ID") 
    private String departmentId; 

답변

0

내 부모 테이블 부서 코드

@Id 
    @Column(name = "DEPARTMENT_ID") 
    private String departmentId; 

    @OneToMany(fetch = FetchType.EAGER) 
    @JoinColumn(name = "DEPARTMENT_ID",insertable=false,updatable=false) 
    Collection<Employee> employeeList; 

입니다 mappedBy @OneToMany에 대한 속성입니다.

@Id 
@Column(name = "DEPARTMENT_ID") 
private String departmentId; 

@OneToMany(fetch = FetchType.EAGER, mappedBy="departmentId") 
@JoinColumn(name = "DEPARTMENT_ID",insertable=false,updatable=false) 
Collection<Employee> employeeList; 

아래 relationsip 유지 :

employee.departmentId = newDepartmentId; //or set it null to detach from the old dept 
관련 문제