CMP 1.x에 대한 관계 작성

CMP 1.x의 관계는 EJB 1.x 스펙에 대한 표준이 아닙니다. WebSphere® Application Server 확장기능은 1.x 관계를 처리하기 위해 작성되었습니다. 두 엔터프라이즈 Bean(CMP 1.x) 간의 관계를 작성할 수 있습니다.

이 태스크 정보

EJB 배치 디스크립터 편집기를 사용하여 EJB 프로젝트 또는 모듈에서 두 엔터프라이즈 Bean 사이의 관계를 지정할 수 있습니다. EJB 배치 디스크립터 편집기는 사용자가 작성한 관계를 지원하기 위해 적합한 파인더 메소드를 생성합니다.

한 CMP에서 다른 CMP로의 관계를 정의할 때, 참조하는 CMP Bean의 키 필드를 기반으로 하는 추가 CMP 필드가 정방향 참조 역할의 소유 CMP Bean에 추가됩니다(소유 CMP Bean에서 외부 키 선택란이 선택됨).

예를 들어 Company는 Employee와 1..N 관계를 갖는데, 각각 회사와 직원의 역할을 맡습니다. 회사 역할은 정방향이며 회사 CMP Bean에는 "companyID" 및 "companyName"이라는 키 필드가 있습니다. 직원 Bean에 자동으로 추가되는 CMP 필드는 "company_companyID" 및 "company_companyName"입니다. 이러한 필드는 "employee" 관계 역할을 지원하기 위해 추가된 필드이므로 EJB 편집기에서 숨깁니다. 관계가 존재하는 동안 이들 CMP 필드가 ejb-jar.xml 파일에서 제거되면 문제가 발생합니다.

프로시저

  1. Java™ EE 퍼스펙티브로 전환하십시오.
  2. 엔터프라이즈 탐색기 보기에서 원하는 EJB 모듈을 선택하십시오.
  3. 배치 디스크립터를 마우스 오른쪽 단추로 클릭하고 연결 프로그램 > 배치 디스크립터 편집기를 선택하십시오.
  4. 편집기의 개요 페이지에서 관계 섹션을 선택하십시오.
  5. 추가를 클릭하십시오. 관계 추가 마법사가 표시됩니다.
  6. Bean A 목록(왼쪽 열)에서 하나의 엔터프라이즈 Bean을 선택하십시오.
  7. Bean B 목록(오른쪽 열)에서 하나의 엔터프라이즈 Bean을 선택하십시오. 선택한 엔터프라이즈 Bean의 이름을 기반으로 관계 이름 필드가 자동으로 작성됩니다. 그러나 이 필드를 편집하여 관계 이름을 바꿀 수 있습니다.
  8. 다음을 클릭하십시오.
  9. 기본적으로 역할 이름이 자동으로 생성되지만 수정할 수 있습니다.
  10. 각 역할에 대한 매개변수를 설정하십시오. 다음 옵션 중에서 선택하십시오.
    • 탐색 가능은 이 역할을 사용하여 연관에서 다른 Bean의 인스턴스를 검색할 수 있음을 의미합니다.
    • 다중성은 역할에 잠재적으로 다른 Bean의 여러 인스턴스가 표시됨을 의미합니다. 1..x를 사용하여 필요한 역할을 작성합니다.
    • 외부 키는 관계의 지정된 엔터프라이즈 Bean이 다른 관계 역할의 외부 키를 보유함을 의미합니다.
  11. 완료를 클릭하십시오.

결과

참고: CMP 1.x 관계를 지원하기 위해 링크 클래스가 작성됩니다. 이 링크 클래스에는 Bean 1차 키 클래스에 대한 지식이 필요합니다. 관계와 관련된 CMP 1.x의 1차 키 클래스를 변경하면 생성된 링크 클래스에 기존 1차 키 클래스에 대한 참조가 계속해서 포함됩니다. 해결책은 링크 클래스를 수동으로 업데이트하는 것입니다. 변경이 필요한 두 개의 발생만이 있어야 합니다.

피드백