2012-12-19 2 views
4

많은 EntityManager (스키마가있는 EM을 매핑하는 데 entity-mappings 파일을 사용합니다) 당 하나의 스키마가 있습니다. 그것은 작동합니다.@NamedNativeQuery 및 스키마 관리

내가 @NamedQuery을 사용할 때 매력처럼 작동하지만 @NamedNativeQuery 스키마를 사용하면 스키마가 사용되지 않습니다. 나는 그것을 가진 자격이있다 SELECT foo FROM schema.table.

올바른 행동입니까?

동적으로 스키마를 전달하는 데 @NamedNativeQuery 매개 변수를 사용할 수 없다고 생각합니다. 동적 스키마를 사용하여 @NamedNativeQuery을 어떻게 사용하면 좋을지, 열만 테이블 또는 스키마가 아닌 동적 요소 일 수 있다고 생각하십니까? 문서에서

답변

2

발췌 :

  • NamedNativeQuery : 명명 된 네이티브 SQL 쿼리를 지정합니다. 쿼리 이름의 범위는 지속성 단위입니다.
  • NamedQuery : Java Persistence 쿼리 언어에서 정적 이름 지정된 쿼리를 지정합니다. 쿼리 이름의 범위는 지속성 단위입니다.

NamedNativeQuery가 정적 인 것을 직접 지정되지 않은,하지만 모두 &가 원하는 행동의 이후 &을 변경할 수 없습니다 범위와 동일합니다.

명명 된 쿼리는 여러 모듈 (응용 프로그램 너비, 고유 한 이름으로 식별 됨)에서 액세스 할 수 있으므로 고정적이므로 & 상수입니다. 동적으로 쿼리 문자열을 작성해보십시오. &은 네이티브 쿼리 대신 네이티브 쿼리를 만들 수 있습니다.

+0

나는 알고있다. 따라서 동적 스키마에서 명명 된 네이티브 쿼리를 사용하는 것은 불가능합니다. Ty –

+1

@OlivierJ. 예, 명명 된 쿼리에 매개 변수로 테이블/스키마 등을 전달할 수 없습니다. –

+0

ok 동적으로 문자열로 내 쿼리를 생성합니다. 고맙습니다. –