EJB 배치 디스크립터 편집기는 사용자가 작성한 관계를 지원하기 위해 적합한 파인더 메소드를 생성합니다.
하나의 CMP Bean에서 다른 CMP Bean으로 관계를 정의할 때 참조 CMP Bean의 키 필드에 기초한 추가 CMP 필드가 정방향 참조 역할의 소유 CMP Bean에 추가됩니다(소유 CMP Bean에서 외부 키 선택란이 선택됨).
예를 들어, 회사가 직원과 1:M 관계이며 각각 회사 및 직원 역할을 담당합니다. 회사 역할이 정방향이고 회사 CMP Bean에 키 필드 "companyID" 및 "companyName"이 있습니다. 직원 Bean에 자동으로 추가되는 CMP 필드는 "company_companyID"와 "company_companyName"입니다. 이러한 필드는 "employee" 관계 역할을 지원하기 위해 추가된 필드이므로 EJB 편집기에서 숨깁니다. 관계가 계속 지속되는 동안 이러한 CMP 필드가 ejb-jar.xml 파일에서 제거되면 문제가 발생합니다.
관계가 작성되면 이러한 두 Bean의 링크를 유지하도록 런타임을 지원하기 위해 추가 클래스가 작성됩니다. 또한 두 엔터프라이즈 Bean의 홈, 원격 및 Bean 클래스로 추가 메소드가 생성됩니다. 생성된 링크 클래스를 컴파일해야 하므로 관계가 처음 작성될 때 EJB 배치 디스크립터 편집기에서 컴파일 오류를 확인할 수 있습니다. 이러한 파일에서 실제 코드를 확인할 수 있지만 홈, 원격 및 Bean 클래스의 변경사항이 아직 컴파일되지 않았습니다. 프로젝트가 빌드될 때까지 이 상태는 발생하지 않으며 보통 EJB 배치 디스크립터 편집기 또는 EJB 편집기가 저장될 때 자동으로 발생합니다. 따라서 편집기가 저장될 때까지 컴파일 오류를 확인할 수 없습니다.
주: 하나 이상의 CMP Bean들 사이에 관계가 있는 경우 한 CMP의 키 모양이 변경되면 관련 CMP가 재생성될 수 있습니다.
예를 들어, 관계를 사용하는 중 엔터프라이즈 Bean의 열거를 리턴하는 원격 인터페이스에서 관계 메소드를 호출하는 경우 이러한 JAR 파일이 클래스 경로에 추가되지 않았으면 메소드 호출이 예외를 처리합니다.