ネイティブクエリとは何ですか?
ネイティブクエリは、構造化されたクエリ言語(SQL)を通じて表現されるクエリであり、C ++およびJavaクエリ式のタイプセーフメソッドと同様に簡潔であると同時にです。ネイティブクエリの使用は、クエリのヒントや特定のデータベース固有の機能など、データベース内の特定の機能の利用に有益です。また、SQLまたはJavaデータベース接続(JDBC™)を使用して、アプリケーションから直接移行のクリーンパスを提供するのにも役立ちます。ネイティブクエリは、スカラー値、エンティティ、またはその両方で構成される結果を提供するために使用されます。これらのタイプのクエリは、ターゲットデータベースでのネイティブSQLの使用をサポートしています。
これらのタイプのクエリは、文字列ベースのアプリケーションプログラミングインターフェイス(API)の欠点を克服できます。この種のクエリは、オブジェクトの持続性がプログラマーにとって共通のタスクであり、データベースの共通の機能であるオブジェクトデータベースで使用されます。ただし、非ネイティブのクエリは、その表現が単純であるためにオブジェクト指向のプログラムでは外来のように見えます散在する文字列を含む文字列とオブジェクトグラフ。クエリは、APIまたはカスタマイズされたクエリ言語なしで記述できます。さらに、統合開発環境(IDE)は、タイプミスの削減を支援することができます。ネイティブクエリは、タイプセーフから最大限に活用され、IDEのリファクタリング機能によってアクセスできるようになります。最後に、データベースのバックエンドなしでプレーンメモリコレクションに対して実行、テスト、およびプロトタイプ化できます。
クエリとそれに付随するSQLは、他のデータベース間で必ずしも転送可能ではありません。特定のネイティブクエリによって多くのエンティティが返されると、これらの同じエンティティを指定し、メタデータ定義マッピングソフトウェアプログラムのSQLステートメントで列の結果にマッピングする必要があります。その結果、これらはEを使用して、永続的なランタイムによってJDBCの結果を期待されるオブジェクトにマッピングできます。名前パラメーターの使用は、これらのタイプのクエリに対して定義されることはありません。ポータブルアプリケーションは、ネイティブSQLクエリの位置パラメーターのバインディングのみを使用できます。参加のサポートは、単一の値の関係に限定されています。
ネイティブクエリを使用するには、プログラマーはSQL結果セットを説明する必要があります。結果セットの記述は、エンティティマネージャーマップ列などのエンティティのプロパティへのプログラムに役立ちます。スカラーの結果も定義され、他のエンティティの結果と混合され、エイリアス列が返されます。結果セットが説明されると、ネイティブクエリの実行が可能です。