CMP(Container-Managed Persistence)를 사용하는 엔티티 Bean 작성

엔터프라이즈 Bean 작성 마법사를 사용하면 CMP(Container-Managed Persistence) 엔티티 Bean을 작성할 수 있습니다.

프로시저

  1. Java™ EE 퍼스펙티브에서 파일 > 새로 작성 > 기타를 클릭하십시오. EJB > 엔터프라이즈 Bean(1.x-2.x)을 선택하고 다음을 클릭하십시오. 또는 EJB 프로젝트를 마우스 오른쪽 단추로 클릭하고 새로 작성 > 엔터프라이즈 Bean(1.x-2.x)을 클릭하십시오.
  2. CMP(Container-Managed Persistence)를 사용하는 엔티티 Bean 필드를 선택하고 다음을 클릭하십시오.
  3. 옵션: 새 Bean을 동일한 EJB 프로젝트의 기존 Bean에서 상속하려면 Bean 상위 유형을 선택하십시오. EJB 프로젝트에 다른 CMP Bean이 있으면 Bean 상위 유형 드롭 다운 상자를 사용할 수 있습니다. 하위 유형은 상위 유형과 동일한 키 클래스여야 하므로 Bean 상위 유형을 선택하면 키 클래스 필드를 사용할 수 없습니다.
  4. Bean을 추가할 EJB 프로젝트를 선택하십시오.
  5. Bean 이름 필드에서 엔터프라이즈 Bean에 지정할 이름을 입력하십시오. 규정 상, Bean 이름은 대문자로 시작해야 합니다.
    참고: Bean 이름에 유니코드 문자를 사용할 수 있지만, 엔터프라이즈 Bean 패키지 및 엔터프라이즈 Bean과 연관된 클래스에서는 유니코드 문자를 지원하지 않습니다.
  6. 소스 폴더 필드에서 새 Bean의 소스 폴더를 선택하십시오.
  7. 기본 패키지 필드에 새 Bean의 패키지 이름을 입력하십시오.
  8. EJB 2.0 이상의 프로젝트에 Bean을 추가하는 경우 CMP 버전 드롭 다운 목록에서 새 엔티티 Bean에 사용할 EJB 스펙 레벨을 선택하십시오.
  9. 옵션: EJB 2.x Bean의 경우 어노테이션이 있는 Bean 클래스를 생성함을 선택할 수 있습니다. 이 옵션을 선택하면 마법사가 Bean 클래스의 Java 코드 처음에 어노테이션을 생성합니다. 어노테이션은 마법사에 지정한 Bean의 구현을 정의합니다. 그런 다음 EJB 도구에서 어노테이션을 사용하여 필요한 Bean 클래스를 생성하고 EJB 배치 디스크립터(ejb-jar.xml)에 삽입된 값을 제공합니다. 어노테이션에 익숙하며 배치 디스크립터를 사용하지 않고 어노테이션을 사용하여 Bean을 업데이트하려면 이 옵션을 선택하십시오.

    자세한 정보는 다음을 참조하십시오. 어노테이션 기반 프로그래밍 개요.

  10. 다음을 클릭하십시오.
  11. Bean 클래스 필드에 Bean 클래스의 패키지 및 클래스 이름을 입력하십시오. 기본적으로 마법사에서는 사용자가 정의한 Bean 이름 및 기본 패키지에 따라 Bean 클래스를 제안합니다. Bean 클래스는 마법사가 생성하는 새 클래스이거나 프로젝트 클래스 경로에 있는 기존 클래스입니다. 클래스 단추를 클릭하여 프로젝트에서 Bean 유형에 해당하는 클래스를 나열한 유형 선택 창을 여십시오. 소스가 있는 기존 클래스의 경우 Bean 클래스의 이름이 파란색으로 표시됩니다. 기존 2진 클래스의 경우 Bean 클래스의 이름이 빨간색으로 표시됩니다.
  12. 클라이언트 보기 및 인터페이스를 정의하십시오. EJB 2.0 이상의 Bean일 경우 원격 클라이언트 보기, 로컬 클라이언트 보기 또는 둘 다를 포함할 수 있습니다. EJB 1.1 Bean의 경우 원격 클라이언트 보기만 지원됩니다. 모든 세션 또는 엔티티 Bean에는 최소한 하나의 클라이언트 보기가 있어야 합니다.
    • 원격 클라이언트 보기: 세션 Bean의 원격 클라이언트 보기를 포함하려면 이 선택란을 선택하십시오.

      원격 홈 인터페이스원격 인터페이스 필드에 원격 클라이언트 보기 인터페이스에 사용할 패키지 및 클래스 이름을 입력하십시오. 마법사는 Bean 이름 및 기본 패키지를 사용하여 인터페이스 클래스 및 클래스 이름의 값을 제안합니다.

    • 로컬 클라이언트 보기: 세션 Bean의 로컬 클라이언트 보기를 포함하려면 이 선택란을 선택하십시오.

      로컬 홈 인터페이스로컬 인터페이스 필드에 로컬 클라이언트 보기 인터페이스에 사용할 패키지 및 클래스 이름을 입력하십시오. 마법사는 Bean 이름 및 기본 패키지를 사용하여 인터페이스 클래스 및 클래스 이름의 값을 제안합니다.

  13. 옵션: 키 클래스 필드에 Bean의 키 클래스에 대한 패키지 및 클래스 이름을 입력하십시오. 기본적으로 키 클래스의 단일 키 속성 유형 사용 선택란이 선택되어 있으며 키 CMP 속성의 유형을 키 클래스로 사용합니다. 유형이 올바른 1차 키 필드(예: java.lang.Integer)인 단일 키 속성이 있는 경우 이 옵션을 사용하십시오. 여러 키 속성이 있는 경우 새 복합 키 클래스가 작성됩니다. 다른 키 클래스를 지정하려면 키 클래스의 단일 키 속성 유형 사용 선택란을 선택 취소하고 키 클래스의 이름을 제공하십시오.
  14. 옵션: 엔티티 Bean의 CMP 속성을 정의하십시오.
    1. 추가 단추를 클릭하십시오.
    2. 속성의 이름유형을 지정하십시오.
    3. 옵션: 속성이 배열인 경우 배열 선택란을 선택하십시오. 배열에서 차원 수를 지정하십시오.
    4. 옵션: 키 필드를 선택하여 속성을 엔티티 Bean의 키 필드로 지정하십시오.
    5. 옵션: 새 Bean의 클라이언트 보기에 따라 속성의 Getter 및 Setter 메소드를 원격 및 로컬 인터페이스로 승격하도록 선택할 수 있습니다.
    6. 적용을 클릭하여 속성을 작성하십시오. 속성 정의를 완료했으면 닫기를 클릭하십시오.
    기본적으로 마법사는 이름이 id이고 유형이 java.lang.Integer인 CMP 속성을 지정하고 이 속성을 키 필드로 선언합니다. 이 속성을 편집하거나 제거할 수 있습니다.
    참고: Bean이 상속되지 않는 경우 키가 필요합니다. 키가 정의되지 않았으면 Bean에는 유효성 검증 오류가 있습니다. Bean을 작성한 후 배치 디스크립터 편집기를 사용하여 키 속성을 추가하거나 기존 속성을 키로 지정할 수 있습니다.
  15. 다음을 클릭하십시오.
  16. 옵션: Bean 수퍼 클래스 필드에서 원하는 클래스를 입력하거나 선택하십시오.
  17. 옵션: 원격 또는 로컬 클라이언트 인터페이스를 확장할 인터페이스를 정의하십시오.
    • 추가 단추를 클릭하여 확장할 인터페이스를 선택할 수 있는 유형 선택 대화 상자를 여십시오.
    • 더 이상 확장하지 않을 인터페이스를 추가한 경우 목록에서 해당 인터페이스를 선택하고 제거를 클릭하십시오.
    다음을 클릭하십시오.
  18. 옵션: 클래스 다이어그램에 Bean 추가를 수행하려면 이 선택란을 선택하고 프로젝트의 탐색기 보기에서 클래스 다이어그램을 선택하십시오. 각 EJB 프로젝트에는 이미 작성된 기본 클래스 다이어그램이 있습니다. 새 클래스 다이어그램을 작성하려면 새로 작성을 클릭하여 새 클래스 다이어그램 마법사를 여십시오.
  19. 완료를 클릭하여 지정된 EJB 프로젝트에 새 Bean을 추가하십시오.

다음에 수행할 작업

제한사항: 상속된 CMP 엔티티 Bean을 설정할 때 하위 Bean에는 상위 체인에 정의된 이름과 동일한 이름의 CMP 속성이 포함될 수 없습니다. 예를 들어, Parent가 int 유형의 속성 ID가 있는 CMP 엔티티 Bean입니다. 마법사를 사용하여 Child라는 CMP Bean을 작성하고 Parent를 상위 유형으로 지정한 후 int 유형의 속성 ID를 추가하려고 시도한 경우 Parent의 ID 속성을 상속하게 되므로 ID 속성이 추가되지 않습니다. 관련되지 않은 다른 CMP Bean인 Child2에 java.lang.String 유형의 속성 ID가 포함되어 있으며 배치 디스크립터 편집기를 통해 Parent에서 상속하도록 상속 구조가 변경된 경우 Child2의 유형 java.lang.String인 ID 속성은 제거됩니다. Parent의 ID 속성을 상속하며 유형 충돌로 인해 유효성 검증 오류가 발생할 수 있기 때문입니다.

피드백