CMP 1.x에 대한 관계는 EJB 1.x 스펙의 표준이 아닙니다. 1.x 관계를 핸들링하기 위해 WebSphere® Application Server 확장자가 작성되었습니다.
EJB 전개 설명자 편집기를 사용하여 EJB 프로젝트 또는 모듈에서 두 Enterprise Bean 사이의 관계를 지정할 수 있습니다. EJB 전개 설명자 편집기는 작성하는 임의의 관계를 지원하기 위해 적절한 파인더 메소드를 생성합니다.
한 CMP에서 다른 CMP로의 관계를 정의할 때, 참조하는 CMP Bean의 키 필드를 기반하는 추가 CMP 필드가 정방향 참조 역할의 소유 CMP Bean에 추가됩니다(소유 CMP Bean에서 외부 키 선택란이 선택됨).
예를 들어, 회사가 직원에 대해 1..N 관계를 가지고 각각은 회사 및 직원 역할을 포함합니다. 회사 역할은 정방향이며 회사 CMP Bean에는 "companyID" 및 "companyName"이라는 키 필드가 있습니다. 자동으로 직원 Bean에 추가되는 CMP 필드는 "company_companyID" 및 "company_companyName"입니다. 이러한 필드는 "직원" 관계 역할을 지원하기 위해 추가된 필드이므로 EJB 편집기에서는 숨겨집니다. 관계가 여전히 존재하는 동안에 이 CMP 필드가 ejb-jar.xml 파일에서 제거되면 문제점이 발생할 수 있습니다.
관계에 대한 추가 예는 Rational® Application Developer와 함께 제공되는 AutoWorld 예제 프로젝트에서 볼 수 있습니다. 아래 그림은 주차장-자동차 관계가 EJB 전개 설명자 편집기의 관계 페이지에 어떻게 표시되는지를 나타냅니다. 여러 자동차가 하나의 주차장에 수용될 수 있으므로 다중성은 다(0..*) 대 1(0..1) 관계를 표시합니다.
작성 마법사는 관계의 UML 보기를 표시하며 필드는 UML 모델을 기반으로 수정됩니다. 관계가 작성될 때, 이러한 두 가지 Bean 사이의 링크를 유지보수하는 데 있어서 런타임을 지원하기 위해 추가 클래스가 작성됩니다. 또한 추가 메소드가 두 가지 Enterprise Bean의 홈, 원격 및 Bean 클래스에 생성됩니다. 생성된 링크 클래스가 컴파일되어야 하므로 관계가 처음으로 작성될 때 EJB 전개 설명자 편집기에 컴파일 오류가 표시됩니다. 이러한 파일에 실제 코드가 표시되지만 홈, 원격 및 Bean 클래스의 변경사항이 아직 컴파일되지 않았습니다. 이는 프로젝트가 빌드될 때까지 발생하지 않으며 일반적으로 EJB 전개 설명자 편집기가 저장될 때 자동으로 발생합니다. 따라서 편집기가 저장될 때까지 컴파일 오류가 표시되지 않습니다.
두 가지 Enterprise Bean(CMP 1.x) 사이의 관계를 작성하려면 다음을 수행하십시오.