이 주제에서는 EJB 맵핑에 대해 현재 알려진 제한사항 및
한계를 개괄적으로 설명합니다.
EJB 맵핑 제한사항 및 한계
- FLOAT 데이터 유형에서 발생하는 SQL Server 맵핑 문제점: CMP Bean이
SQL Server 데이터베이스에 맵핑되면 float 유형의 필드가
REAL이 아닌 FLOAT 유형의 열에 맵핑되어야 합니다.
- Enterprise Bean을 외부 키 및 1차 키에 맵핑하기 위한 지원:
Enterprise Bean을 데이터베이스 테이블에 맵핑할 때 외부 키 및 1차 키와
관련된 여러 가지 제한이 있습니다.
- 테이블에 여러 개의 열을 포함하는 다중 외부 키가 있는 경우,
두 개의 외부 키가 서로 다른 두 개의 EJB 관계로 맵핑에 모두 사용된다면
이 외부 키는 서로 겹쳐질 수 없습니다. 예를 들어, ForeignKey1에
ColumnA와 ColumnB가 있는 경우 ForeignKey2는 ColumnC와 ColumnD를 포함할 수 있지만
ColumnB와 ColumnC는 포함할 수 없습니다. ForeignKey2가 ColumnB와
ColumnC를 포함하면 두 개의 외부 키는 서로 겹쳐집니다.
- 테이블에 다중 열 1차 키와 해당 열을 공유하는 하나 이상의 외부
키가 있는 경우, 외부 키는 1차 키와 동일한 열을 포함하거나 1차 키
외부에 있는 전체 열을 포함해야 합니다. 예를 들어, PrimaryKey1이 ColumnA와 ColumnB를
포함하는 경우 ForeignKey1은 ColumnA와 ColumnB 또는 ColumnC와 ColumnD를 포함하지만
ColumnB와 ColumnC를 포함할 수 없습니다. 다중 외부 키가 있는 경우 각 외부 키는
이러한 요구사항을 충족해야 합니다.
- 서로 다른 두 개의 테이블에 외부 키가 있는 경우, EJB
맵핑 도구를 사용하여 Bean의 일대다(1:M) 관계를 다른 Bean의 단일 외부 키에
맵핑할 수 없습니다. 외부 키는 각 관계에 대해 고유해야 합니다.
- 상속 및 보조 테이블 맵핑: 맵핑 상속에 대한 루트 리프 접근법을
사용하거나 여러 개의 테이블과 함께 보조 맵을 사용하는 경우,
데이터베이스에서 외부 키 제한조건을 제거하여 참조 무결성
순서 지정 문제(SQL 문이 순서대로 실행되지 않음)를 방지하십시오.
- 1.1 CMP 엔티티 Bean의 변경이 예상되지 않는 술부:
WebSphere® Studio
Application Developer 버전 5.0 이전 버전에서는 EJB 1.1 CMP 엔티티 Bean의 속성을
변경이 예상되지 않는 술부에 추가하는 기능을 지원하지 않았습니다. 그러나
Workbench를 통해 버전 5.0 이전 버전을 사용하여 개발한 EJB 응용프로그램을 전개하고
변경이 예상되지 않는 술부의 속성 목록을 포함하지 않으면, 사용 가능한 모든 술부가
사용됩니다. EJB 2.x CMP 엔티티 Bean은 다르게 취급됩니다. 술부로 선택된 속성이
없으면 과규정화 갱신에 아무 것도 추가되지 않습니다.
- 상속이 포함된 EJB를 맵핑하는 경우, 계층의 모든 Bean에서
모든 필드를 하나의 테이블에 맵핑하는 단일 테이블 맵핑 전략, 또는
각 Bean이 해당 Bean에 대해 고유한 속성을 저장하는 고유 테이블을 갖는 루트 리프 전략을
사용할 수 있습니다. 또한 일부 Bean은 단일 테이블로 상위 테이블에 저장되고
기타 Bean은 루트 리프로 개별 테이블에 저장되는 혼합 전략을 사용할 수 있습니다.
혼합 전략을 사용하는 경우,
EJB 조회 사용 시 다음 규칙을 따라야 합니다. Bean이 해당 상위 테이블에
맵핑되면 모든 하위, 동위, 동위의 하위는 동일한 전략을 따라야 합니다. 예를 들어, 아래 표시된 계층 구조의 경우
ChA1가 ChA로 동일한 테이블에 맵핑된 후 ChA3,
ChA2 및 ChA4도 동일한 테이블에 맵핑되어야 합니다.
