CMP 1.x에 대한 관계 작성

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 전개 설명자 편집기가 저장될 때 자동으로 발생합니다. 따라서 편집기가 저장될 때까지 컴파일 오류가 표시되지 않습니다.

주: 하나 이상의 CMP Bean 사이에 관계가 존재하는 경우, 하나의 CMP의 키 형태를 변경하면 관련 CMP가 재생성될 수 있습니다.

두 가지 Enterprise Bean(CMP 1.x) 사이의 관계를 작성하려면 다음을 수행하십시오.

  1. J2EE Perspective로 전환하십시오.
  2. 프로젝트 탐색기 보기에서 원하는 EJB 모듈을 선택하십시오.
  3. 전개 설명자 편집기를 마우스 오른쪽 단추로 클릭하고 팝업 메뉴에서 연결 프로그램을 선택하십시오.
  4. 편집기의 개요 페이지에서 관계 섹션을 선택하십시오.
  5. 추가를 클릭하십시오. 관계 추가 마법사가 표시됩니다.
  6. Bean A 목록(왼쪽 열)에서 하나의 Enterprise Bean을 선택하십시오.
  7. Bean B 목록(오른쪽 열)에서 하나의 Enterprise Bean을 선택하십시오. 선택한 Enterprise Bean의 이름을 기반으로 관계 이름 필드가 자동으로 작성됩니다. 그러나 이 필드를 편집하여 관계 이름을 바꿀 수 있습니다.
  8. 다음을 클릭하십시오.
  9. 기본적으로 역할 이름이 자동 생성되지만 수정할 수 있습니다.
  10. 각 역할에 대한 매개변수를 설정하십시오. 다음 옵션에서 선택하십시오.
    • 탐색 가능을 선택하면 연관에서 다른 Bean의 인스턴스가 이 역할을 사용하여 검색할 수 있습니다.
    • 다중성을 선택하면 역할이 잠재적으로 다른 Bean의 여러 인스턴스를 나타냅니다. 1.x를 사용하여 필요한 역할을 작성합니다.
    • 외부 키를 선택하면 관계의 지정된 Enterprise Bean이 다른 관계 역할의 외부 키를 보유합니다.
  11. 완료를 클릭하십시오.
주: CMP 1.x 관계를 지원하기 위해 링크 클래스가 작성됩니다. 이러한 링크 클래스는 Bean 1차 키 클래스의 내용을 알아야 합니다. 관계에 포함된 CMP 1.x에 대한 1차 키 클래스를 변경하면 생성된 링크 클래스가 여전히 이전 1차 키 클래스에 대한 참조를 포함하게 됩니다. 해결책은 수동으로 링크 클래스를 갱신하는 것입니다. 변경이 필요한 두 개의 어커런스만 있어야 합니다.
이용약관 | 피드백
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.