2013-05-31 3 views
0

문제가 있습니다. 하위 데이터가있는 도메인이 있습니다. 캐스케이드 삭제를 사용하여 쉽게 삭제할 수 있지만 선생님은 캐스케이드 삭제를해서는 안된다는 말을했습니다. 내 계획은 데이터에 연관이있을 때 연관을 검색하여 사용자에게 표시합니다. 지금까지 내가 가지고있는 것은 try catch를 사용하여 잡아서 Eclipse 콘솔에 표시 할 수 있습니다. 디스플레이는 다음과 같습니다최대 절전 모드에서 관련 데이터를 검색하는 방법

java.sql.BatchUpdateException: Cannot delete or update a parent row: a foreign key constraint fails ( EPS . EMPLOYEE_EMPLOYER , CONSTRAINT FK_EMPLOYEE_EMPLOYER_EMPLOYEE FOREIGN KEY ( EMPLOYEE_ID ) REFERENCES 직원 그것이 내가 You cannot delete this record because it has associated record/s.을 말한다 경고를했던 아약스 오류가 발생 ))

때문에 ( EMPLOYEE_ID. 나는 더 구체적이되고 싶다.

그런 다음 무엇을해야할지 모르겠습니다. 관련된 모든 데이터를 검색하여 표시하려고합니다. 도와주세요.

+0

"하지만 선생님, 나는 계단식으로하지 말아야한다고 말했다."어떤 이유로? "부모"와 "자식"의 관계는 어떻습니까? –

답변

3

"해결책"을 얻지 못했습니다. 모든 하위 엔티티가있는 엔티티를 삭제하는 것에 대해 이야기하고 있습니다. 데이터를 검색하고 사용자에게 보여주는 것은 아무 관계가 없습니다.

먼저 "선생님"이 캐스케이드하지 말라고하는 이유를 모르겠습니다. 이는 계단식 연결을 사용하기에 완벽하고 타당하고 적절한 상황입니다. delete-orphan 사용을 고려하면 자식 엔티티 삭제가 필요합니다.

계단식 연결을 실제로 원하지 않는 경우 엔티티를 삭제해야 할 필요가있는 경우에는 먼저 모든 하위 항목을 가져오고, 먼저 하위 항목을 삭제하고 (여기에서 플러시를 고려할 수 있음) 엔티티 자체를 삭제하십시오. 실제로 Hibernate와의 관계는 그리 크지 않다. 그것은 DB를 사용할 때 겪게 될 일반적인 문제입니다.

+0

나는 그가 캐스케이드하고 싶지는 않지만 사용자에게 의존성이 있음을 알려주고 있다고 생각한다. –

관련 문제