EJB 배치 디스크립터 편집기를 사용하면 엔터프라이즈 Bean 간의
상속 관계를 정의할 수 있습니다.
도구를 사용하여 다음 두 가지 양식의 상속을 정의할 수 있습니다.
표준 클래스 상속에서 홈 인터페이스, 원격 인터페이스 또는 엔터프라이즈 Bean 클래스는
엔터프라이즈 Bean 클래스 또는 인터페이스가 아닌 기본 클래스로부터 특성 및 메소드를
상속합니다. 엔터프라이즈 Bean 마법사의 수퍼클래스 필드를 사용하여 Bean 수퍼클래스를
지정합니다.
반면 EJB 상속에서 엔터프라이즈 Bean은 동일한 EJB 모듈에 상주하는 다른
엔터프라이즈 Bean으로부터 특성(CMP 필드 및 관계 역할 등), 메소드 및 메소드 레벨
어셈블리 디스크립터 속성을 상속합니다. 새 엔터프라이즈 Bean 마법사에서는 EJB 상속 관계
정의를 돕기 위해 사용자가 기존 엔터프라이즈 Bean에서 상속하는 엔터프라이즈 Bean을
작성할 수 있도록 합니다. EJB 편집기에서 기존 엔터프라이즈 Bean의 상속 구조를 변경할 수 있는데,
이렇게 하면 생성된 Java™ 코드를 업데이트합니다.
이 제품은 EJB 편집기의 상속 섹션에서 사용 가능한 마법사를 사용하여
상위를 변경하는 여러 가지 다른 방식을 지원합니다.
- 상속 구조(루트가 아님)의 Bean 클래스를 다른 상속 구조로 이동합니다(상위 변경).
- 현재 상속 구조에 없는 기존 Bean 클래스에 상위를 추가합니다. 상속된 Bean 및 모든
하위 유형은 이제 이 상위 유형의 키 클래스를 참조합니다. 상속된 Bean의 키 모양은 변경되며,
따라서 Bean 클래스의 메소드와 원격 정보도 변경하거나 제거할 수 있습니다. 이전 키 클래스가
다른 Java 클래스에 의해 더 이상 참조되지 않으면 이 클래스는
삭제해도 안전합니다.
- 상속 구조에서 Bean을 제거하여 상속 구조는 루트가 됩니다.
키 클래스를 지정해야 합니다. 이를 수행하도록 선택한 경우
EJB 도구가 사용자용 키를 작성합니다. Bean의 이전 키와 동일한 속성을 가지므로
클래스/Bean이 아직 유효합니다. 예를 들어, Employee를
PTEmployee의 상위로 가지고 있다고 가정할 경우 PTEmployee를 이동하면 PTEmployeeKey를
새 키 클래스로 작성할 수 있습니다. 확인을 클릭하면
도구는 동일한 필드를 보존, 반영 및 자동 생성합니다.
다음은 EJB 상속의 몇 가지 특성입니다.
- CMP 엔티티 Bean의 경우 단일 테이블 및 루트-리프 테이블 맵핑을
지원합니다. 그러나 너비 또는 깊이가 큰 계층 구조에서는 SQL 문의 크기가
크기 때문에 성능이 저하될 수 있습니다. 루트-리프 맵핑은 SQL 문에 포함되는
결합의 수가 많기 때문에 이 문제에 더 영향을 받습니다.
- 배치 디스크립터는 상속된 필드를 포함하여 각 엔터프라이즈 Bean에 대한
모든 CMP 필드를 나열합니다. 상위 유형 EJB에 대해
정의한 메소드 권한과 메소드 트랜잭션이 각 부속유형 엔터프라이즈 Bean에 대해
작성됩니다. 이는 EJB 참조의 경우에도 해당합니다.
- 엔터프라이즈 Bean 간의 상속 관계를 정의할 때 연관에 포함되지 않는
모든 홈 메소드는 하위 Bean으로 복사됩니다. 하위 홈 인터페이스는
상위 유형 작성 메소드를 지원할 필요없이 부속 유형에 대해 특정의
작성 메소드를 갖기 위해 상위 유형 엔터프라이즈 Bean의 홈을
확장하지 않습니다.
- 새로운 하위 엔터프라이즈 Bean의 Bean 클래스가 상위 엔터프라이즈 Bean의
Bean 클래스를 확장합니다. 상위 Bean 클래스 메소드는 하위 Bean 클래스에
정의되지 않습니다.
- 로컬 및 원격 인터페이스는 상위 유형 엔터프라이즈 Bean의 원격 인터페이스를
확장합니다.
- 키 클래스는 상속된 모든 엔터프라이즈 Bean에 공통됩니다. 즉,
하위 엔터프라이즈 Bean의 키 클래스는 상위 엔터프라이즈 Bean의
키 클래스와 동일합니다.
- 루트 Bean에서만 키에 추가할 수 있습니다.
소스 페이지 및 EJB 상속
상속
계층 구조에서 CMP 엔티티 Bean을 수정하는 경우 소스 페이지가
아닌 EJB 배치 디스크립터 편집기의 마법사 및 인터페이스 부분을
사용해야 합니다. 예를 들어, CMP 필드를 추가 또는 제거하거나
CMP Bean의 1차 키 필드를 변경할 경우 이 도구는 BEAN이
EJB 스펙을 준수하도록 모든 상속 BEAN에 대해
이러한 필드를 동기화합니다.
소스 페이지에서 소스를 변경하는 경우 동기화는 발생하지
않습니다.