5

EntityManager持っているスキーマごとに 1 つずつ、多数の があります (entity-mappingsファイルを使用して EM をスキーマにマップします)。できます。

私が使用するとき@NamedQueryは魅力のように機能しますが、@NamedNativeQueryスキーマを使用するときは使用されません。私はそれで修飾する必要がありSELECT foo FROM schema.tableます。

それは正しい行動ですか?

スキーマを動的に渡すためにパラメーターを指定することはできないと思い@NamedNativeQueryます (テーブルやスキーマなどではなく、列のみがダイナミクスになると思います) ので@NamedNativeQuery、動的スキーマでどのように使用できますか?

4

2 に答える 2

2

ドキュメントからの抜粋:

  • NamedNativeQuery :名前付きのネイティブ SQL クエリを指定します。クエリ名は持続性ユニットにスコープされます。
  • NamedQuery : Java Persistence クエリ言語で静的な名前付きクエリを指定します。クエリ名は持続性ユニットにスコープされます。

静的であることは直接指定されていませんNamedNativeQueryが、両方とも同じスコープであり、後で変更することはできません。これは望ましい動作です。

名前付きクエリは、アプリケーション全体で一意の名前で識別される複数のモジュールによってアクセスされるため、静的で一定です。名前付きネイティブ クエリの代わりに、クエリ文字列を動的に作成して、そこからネイティブ クエリを作成できます。

于 2012-12-20T07:48:54.613 に答える