CodeGym /Java Course /All lectures for JA purposes /その他の種類のリクエスト

その他の種類のリクエスト

All lectures for JA purposes
レベル 1 , レッスン 834
使用可能

6.1 名前付きクエリ

Hibernate を使用すると、クエリをコードに直接保存しなくても済みます。代わりに、クエリに名前を付け、注釈として個別に保存することを彼は提案しています。それでは、目的のリクエストをその名前で直接取得します。例:

@org.hibernate.annotations.NamedQueries({
    @org.hibernate.annotations.NamedQuery(name = "Employee_FindById",
  	query = "from Employee where id = :id"),
    @org.hibernate.annotations.NamedQuery(name = "Employee_FindAllEmployes",
  	query = "from Employee"),
    @org.hibernate.annotations.NamedQuery(name = "Employee_UpdateEmployeeName",
  	query = "Update Employee set name = :newName where id = :id"),
...
})

注釈はエンティティ クラスの前に追加できます。クエリ名はエンティティに関連付けられません。

クエリ (クエリ) にさまざまなパラメータを追加することもできます。

@org.hibernate.annotations.NamedQuery(
  name = "Employee_ FindAllEmployes",
  query = "from Employee",
  timeout = 1,
  fetchSize = 10,
  cacheable = true,
  cacheMode = "GET"
)

createNamedQueryこのようなリクエストの使用は非常に簡単です。このためには、メソッドの代わりにメソッドを使用する必要がありますcreateQuery


Query<Employee> query = session.createNamedQuery("Employee_FindAllEmployes", Employee.class);
List<Employee> resultLIst = query.list();

6.2 ネイティブクエリ

もう 1 つのシンプルですが非常に便利なものはNativeQueryです。

HQL を使用したくないが、エンティティ マッピングに Hibernate を使用したい場合は、古き良き SQL でクエリを作成できます。誰もあなたを制限しません。

createNativeQuery()これを行うには、の代わりにメソッドを呼び出すだけですcreateQuery()


NativeQuery<Employee> query = session.createNativeQuery("select * from employee", Employee.class);
List<Employee> resultLIst = query.list();

書くだけでcreateNativeQuery、すべてが以前と同じように機能します。このメソッドは、 QueryクラスがサポートするすべてのメソッドをサポートするNativeQuery型のオブジェクトを返します。あなたにとっては何も変わりません。

さらに、ネイティブ SQL クエリは名前付きクエリとして保存することもできます。


@org.hibernate.annotations.NamedNativeQueries(
    @org.hibernate.annotations.NamedNativeQuery(name = "Employee_GetAll",
  	query = "select * from employee",
  	resultClass = Employee.class)
)

そしてもちろん、これらを操作するためのコードは次のとおりです。


NativeQuery<Employee> query = session.createNamedQuery("Employee_GetAll", Employee.class);
List<Employee> resultLIst = query.list();

コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION