1. ホーム
  2. sql

クエリ、ネイティブクエリ、名前付きクエリ、型付きクエリの違い【終了しました

2023-09-25 20:04:58

質問

クエリ、ネイティブクエリ、名前付きクエリ、型付きクエリの違いは何ですか?単独型」クエリは存在するのか、それとも単なる略称なのか?私の考えでは、ネイティブクエリは単純なSQLで書かれたクエリであり、名前付きクエリはエンティティ(hibernate-mapping)に関連するものです。どなたか簡単に説明していただけませんか?

どのように解決するのですか?

クエリ

クエリとは、一般的にDML文(CRUD操作)の実行に用いられるSQLに類似した構文のJPQL/HQLクエリのことを指します。

JPAでは、クエリを作成するには entityManager.createQuery() . を調べることができます。 API を参照してください。

Hibernateでは session.createQuery() "です。

ネイティブクエリ

ネイティブクエリとは、実際のSQLクエリ(実際のデータベースオブジェクトを参照する)を指します。これらのクエリは、データベースクライアントを使用してデータベースで直接実行することができるSQLステートメントです。

JPA : entityManager.createNativeQuery() Hibernate (非JPAの実装)。 session.createSQLQuery()

名前付きクエリ

定数の定義方法と似ています。NamedQueryは、クエリに名前を付けて定義する方法です。Hibernateのマッピングファイルで定義したり、エンティティレベルでアノテーションを使用することもできます。

型付きクエリ(TypedQuery)

TypedQueryはクエリ作成時にエンティティの型を指定するオプションを提供し、それ以降の操作は意図した型への明示的なキャストを必要としません。一方、通常の Query APIは期待するObjectの正確な型を返さないので、キャストする必要があります。