EJB 중개자 조회 구문
제품에서 제공된 EJB(Enterprise JavaBeans) DMS(Data Mediator Service)를 활용하기 위해 애플리케이션 작성을 시작할 때, 다음 항목을 고려하십시오.
- EJB DMS는 EJB QL(Query Language) 명령문과 선택적 XREL 명령을 포함하여 배열로 구성되는 입력 인수로 복합 EJB 조회를 사용합니다. XREL 명령은 EJB 관계 목록이며 배열에 마지막에 표시되어야 합니다.
- 각 EJB QL 조회는 SDO(Service DataObjects) 인스턴스의 양식으로 데이터를 리턴합니다. 모든 SDO 인스턴스는 DataGraph로 병합됩니다. 각 조회의 SELECT 절은 CMP(Container-Managed Persistence) 필드나 표현식을 지정하여 SDO로 리턴합니다. WHERE 절은 필터링 조건을 지정하며 ORDER BY 절을 정의할 수 있습니다. 둘 이상의 SELECT가 동일한 SDO 유형을 리턴하면, 각 SELECT는 동일한 CMP 필드와 표현식을 프로젝션합니다. 업데이트 가능성의 경우, EJB의 기본 키 필드가 프로젝션되어야 합니다. JOIN, UNION 및 집계는 부속조회를 제외하고 지원되지 않습니다.
- 배열의 조회는 이전 조회와 관계 이름에 정의된 ID 변수를 사용하여 FROM 절에서 이전 조회를 참조할 수 있습니다. 이 관계는 단일 또는 콜렉션 값일 수 있습니다.
- 관계가 FROM 절 또는 XREL 명령에서 사용되면 관계가 그래프에서 데이터 오브젝트 인스턴스 간에 구성됩니다.
- ?1이 Dept EJB의 콜렉션을 참조하고 다음 조회가 중개자에 대해 유효한 경우 콜렉션 값 입력 인수는 FROM 절에서 지원됩니다. 캐스트 구문은
조회 컴파일러에 콜렉션 요소 유형을 알리는 데 필요합니다.
select d.deptno from (Dept) ?1 as d
- 콜렉션 입력 인수는 EJB 컨테이너 또는 지속성 관리자 데이터 캐시에서 캐시된 EJB 인스턴스에서 DataGraph를 빌드하는 데 필요한 경우 유용합니다.
- SELECT 절은 검색할 CMP 필드 목록(와일드카드 * 표기법은 모든 CMP 필드를 검색하는 데 사용될 수 있음) 또는
유효한 EJB 조회 언어 표현식을 지정할 수 있습니다. CMP 필드 및 표현식은 다음 유형 중 하나여야 합니다.
- 기본 유형: boolean, byte, short, integer, long, float, double, char
- 기본 유형에 대한 오브젝트 랩퍼 유형
- Java™.lang.String
- Java.math.BigDecimal
- java.math.BigInteger
- byte [ ]
- Java.sql.Date
- java.sql.Time
- java.sql.Timestamp
- java.util.Date
- java.util.Calendar
- 모든 기본 키 CMP 필드는 SDO(Service Data Objects)가 업데이트 가능한 순서로 검색되어야 합니다. 그렇지 않으면 applyChanges는 예외를 리턴합니다.
- e.salary + e.bonus AS TOTAL_PAY와 같이 EJB 조회 언어 표현식에서 오는 SDO 속성을 업데이트할 수 없습니다. 업데이트를 작성하려고 하면 applyChanges는 QueryException을 리턴합니다.
- EJB 조회 언어의 일부이더라도 SUM(e.salary)와 같은 집계 표현식은 허용되지 않습니다. 집계 표현식을 WHERE 절의 subselects에서 사용할 수 있습니다.