맵 겹침 방지

일부의 경우에서 맵핑 도구를 사용하여 한 번은 속성으로, 그리고 한 번은 관계 역할에서 데이터베이스의 열을 두 번 맵핑할 수 있습니다. 이것을 맵핑에서는 겹침으로 나타낼 수 있습니다. 이러한 겹침은 데이터 무결성 문제를 일으킬 수 있습니다. 이러한 이유로 해서 데이터베이스 요소에 대한 맵핑을 겹치지 않도록 해야 합니다.

맵핑 도구로 작성할 수 있는 겹쳐진 맵핑의 다음 예를 고려하십시오.
  • Bean1은 Table1의 PK1(1차 키) 열에 맵핑된 키 필드를 가지고 Bean2는 Table2의 PK2 열에 맵핑된 키 필드를 가집니다. Table2는 Table1의 PK1 열을 지시하는 FK2(외부 키) 열을 포함합니다. Bean1과 Bean2 간의 관계를 작성하고 Table2의 FK2 열을 사용하여 이 관계를 맵핑합니다.
  • 그런 다음, Bean2의 단순 CMP 속성을 Table2의 FK2 열에 직접 맵핑합니다. 이제 FK2 열은 한 번은 맵핑된 속성으로, 그리고 한 번은 두 개 Bean 간에 맵핑된 관계로 두 번 맵핑되었습니다. 이러한 겹침은 열 또는 테이블이 변경되는 경우 문제점을 발생시킬 수 있습니다.
  • 예를 들어, Bean2에서 Setter를 사용하여 FK2 열(외부 키)을 변경한 다음 이 변경사항을 저장하면 다음에 Bean을 재로드할 때 Bean은 변경된 관계를 가지게 됩니다. 또는 Bean2가 Bean1의 다른 인스턴스를 지시하도록 관계를 변경하면 Bean2의 속성이 해당 변경사항을 반영하지 않습니다.
이용약관 | 피드백
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.