EJB 조회의 데이터 유형 조작 규칙

데이터 유형에 대해 작업하기 위해 EJB(Enterprise JavaBeans) 조회를 사용하는 경우에는 특정 규칙을 사용해야 합니다.

SELECT 절에는 모든 유형의 CMP 필드를 사용할 수 있습니다. 그러나 검색 조건 및 그룹화 또는 정렬 조작에서는 다음 유형의 필드만 사용해야 합니다.

다음 조건이 모두 발생하는 경우:
  • 이전에 나열된 기본 유형 중 하나를 갖는 CMP 필드가 변환기를 사용하여 SQL 열에 맵핑됩니다.
  • CMP 필드는 기본 술어 앞에 표시
  • 술어 다음에는 리터럴 또는 입력 매개변수 표시
그런 다음, 변환기의 toData() 메소드를 사용하여 SQL 검색 값을 계산합니다.

예를 들어, 정수 값 10을 문자열 값 "Ten"에 맵핑하는 변환기의 경우 EJB 조회는 다음을 수행합니다.

e.cmp = 10

이는 다음 SQL 조회로 변환됩니다.

column = 'Ten'

다음 예와 같이 더 복잡한 술어를 포함하는 경우:

e.cmp * 10 >  e.salary

파인더 또는 선택 조회에서 Cannot push down query 오류 메시지가 수신됩니다. 이러한 다중 함수 조회에는 동적 EJB 조회 서비스를 사용하십시오. 동적 조회 런타임이 Application Server에서 술어를 처리합니다.

전체 변환기가 동일성, 조합 순서 및 널값을 보존합니다. 변환기가 이러한 요구사항을 충족시키지 않는 경우, CMP 필드 변환 조작에 해당 변환기를 사용하지 마십시오.

사용자 유형은 비교 조작 또는 표현식에 사용할 수 없습니다. 그렇지만 경로 표현식에는 사용자 유형의 서브필드를 사용할 수 있습니다. 예를 들어, 유형이 com.exam.Address인 CMP addr 필드와 street, city, state 서브필드를 고려해 보십시오. 이 CMP 필드에 대한 다음 조회 구문은 유효하지 않습니다.

e.addr =  ?1

반면에 서브필드 중 하나를 지정하는 조회는 유효합니다.

e.addr.street = ?1

Java 직렬화를 사용하여 CMP 필드를 SQL 열에 맵핑할 수 있습니다. 배치 조회에 대한 술어 또는 표현식에서 CMP 필드를 사용하면 대체로 Cannot push down query 오류 메시지가 표시됩니다. 동적 조회 런타임은 애플리케이션 서버의 모든 사용자 유형 인스턴스를 읽고 직렬화 해제하여 표현식을 처리합니다.

그렇지만 이 비용이 많이 드는 프로세스로 인해 성능이 저하됩니다. 배치 EJB 조회에 작성기를 사용하여 성능을 유지할 수 있습니다. 앞의 예에서, addr 필드를 2진 유형에 맵핑하려면 작성기를 사용하여 각 서브필드를 데이터베이스의 2진 열에 맵핑하십시오.


주제 유형을 표시하는 아이콘 개념 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cque_datatyperules
파일 이름:cque_datatyperules.html