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 アノテーションを使用すると、エンティティ クラスでカスタム JPQL または SQL クエリを定義できます。これは、低レベルの SQL コードを作成せずに、より高度なクエリを実行する便利な方法を提供します。
@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 サイトの他の関連記事を参照してください。