ホームページ  >  記事  >  Java  >  Hibernate でカスタム クエリに @Query アノテーションを使用するにはどうすればよいですか?

Hibernate でカスタム クエリに @Query アノテーションを使用するにはどうすればよいですか?

王林
王林オリジナル
2024-04-17 11:09:01557ブラウズ

Hibernate でカスタム クエリに @Query アノテーションを使用するにはどうすればよいですか? Hibernate の @Query アノテーションを使用すると、JPQL または SQL を使用してカスタム クエリを実行できます。 JPQL クエリ: エンティティ クラスのメソッドに @Query アノテーションを追加します。 JPQLクエリ文字列を指定します。 SQL クエリ: @NamedNativeQuery アノテーションを使用して、名前付きネイティブ クエリを定義します。クエリ ステートメントと結果クラスを指定します。実用的な例: 次のクエリを使用して、特定の部門の従業員を検索できます: @Query("SELECT e FROM Employee e WHERE e.Department = :Department") Lista7c15504e26c2dc9d33fa17ec3230b5f findEmployeesInDepartment(@Param("Department") String 部門);

如何在 Hibernate 中使用 @Query 注解进行自定义查询?

Hibernate でカスタム クエリに @Query アノテーションを使用する方法

はじめに

Hibernate の #@Query アノテーションを使用すると、エンティティ クラスでカスタム JPQL または SQL クエリを定義できます。これは、低レベルの SQL コードを作成せずに、より高度なクエリを実行する便利な方法を提供します。

JPQL クエリ

JPQL (Java Persistence Query Language) を使用するには、エンティティ クラス メソッドに

@Query アノテーションを追加し、JPQL クエリ文字列を指定する必要があります。例:

@Query("SELECT e FROM Employee e WHERE e.salary > 50000")
List<Employee> findEmployeesWithSalaryGreaterThan50000();

このコードは、給与が 50,000 を超えるすべての従業員を返すクエリを定義します。

SQL クエリ

ネイティブ SQL クエリを使用するには、

@NamedNativeQuery 注釈を使用できます。 @NamedNativeQueries 複数の名前付きネイティブ クエリを定義できます。例:

@NamedNativeQueries({
    @NamedNativeQuery(
        name = "findEmployeesWithSalaryGreaterThan50000",
        query = "SELECT * FROM Employee WHERE salary > 50000",
        resultClass = Employee.class
    )
})

このコードは、給与が 50,000 を超えるすべての従業員を返す「findEmployeesWithSalaryGreaterThan50000」というネイティブ SQL クエリを定義します。

実際的なケース

このようなエンティティ クラスを考えてみましょう:

@Entity
public class Employee {
    @Id
    private Long id;
    private String name;
    private double salary;
    //省略 getter 和 setter
}

@Query アノテーションを使用して、特定の部門のすべての従業員を検索できます:

@Query("SELECT e FROM Employee e WHERE e.department = :department")
List<Employee> findEmployeesInDepartment(@Param("department") String department);

これで、

findEmployeesInDepartment メソッドを使用して、次のように特定の部門のすべての従業員を取得できます:

List<Employee> employees = employeeRepository.findEmployeesInDepartment("Engineering");

結論

@クエリ アノテーションは、カスタム クエリを実行できる Hibernate の強力なツールです。 JPQL またはネイティブ SQL を使用してクエリを作成し、名前付きパラメータを使用してクエリ パラメータを動的に渡すことができます。

以上がHibernate でカスタム クエリに @Query アノテーションを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

関連記事

続きを見る