Comment utiliser l'annotation @Query pour une requête personnalisée dans Hibernate ? L'annotation @Query d'Hibernate nous permet d'effectuer des requêtes personnalisées en utilisant JPQL ou SQL. Requête JPQL : ajoutez une annotation @Query sur les méthodes de classe d'entité. Spécifiez la chaîne de requête JPQL. Requêtes SQL : utilisez l'annotation @NamedNativeQuery pour définir des requêtes natives nommées. Spécifiez l'instruction de requête et la classe de résultats. Exemple pratique : Nous pouvons rechercher des employés dans un service spécifique à l'aide de la requête suivante : @Query("SELECT e FROM Employee e WHERE e.department = :department") Lista7c15504e26c2dc9d33fa17ec3230b5f findEmployeesInDepartment (@Param("department") String Department);
Les annotations @Query
d'Hibernate autorisent nous pour définir des requêtes JPQL ou SQL personnalisées sur les classes d'entités. Il constitue un moyen pratique d'effectuer des requêtes plus avancées sans écrire de code SQL de bas niveau. @Query
注解允许我们在实体类上定义自定义 JPQL 或 SQL 查询。它提供了一个方便的方式来执行更高级的查询,而无需编写低级别 SQL 代码。
要使用 JPQL(Java 持久化查询语言),需要在实体类方法上添加 @Query
注解,并指定 JPQL 查询字符串。例如:
@Query("SELECT e FROM Employee e WHERE e.salary > 50000") List<Employee> findEmployeesWithSalaryGreaterThan50000();
这段代码定义了一个查询,它返回所有薪水大于 50,000 的员工。
要使用原生 SQL 查询,可以使用 @NamedNativeQuery
注解。@NamedNativeQueries
允许我们定义多个命名的原生查询。例如:
@NamedNativeQueries({ @NamedNativeQuery( name = "findEmployeesWithSalaryGreaterThan50000", query = "SELECT * FROM Employee WHERE salary > 50000", resultClass = Employee.class ) })
这段代码定义了一个名为 "findEmployeesWithSalaryGreaterThan50000" 的原生 SQL 查询,它返回所有薪水大于 50,000 的员工。
考虑这样的实体类:
@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");
@Query
@Query
à la méthode de classe d'entité et spécifier la chaîne de requête JPQL. Par exemple : 🎜rrreee🎜Ce code définit une requête qui renvoie tous les employés dont le salaire est supérieur à 50 000. 🎜🎜Requête SQL🎜🎜Pour utiliser une requête SQL native, vous pouvez utiliser l'annotation @NamedNativeQuery
. @NamedNativeQueries
nous permet de définir plusieurs requêtes natives nommées. Par exemple : 🎜rrreee🎜Ce code définit une requête SQL native appelée "findEmployeesWithSalaryGreaterThan50000" qui renvoie tous les employés dont le salaire est supérieur à 50 000. 🎜🎜Cas pratique🎜🎜Considérez cette classe d'entité : 🎜rrreee🎜Nous pouvons utiliser l'annotation @Query
pour rechercher tous les employés d'un service spécifique : 🎜rrreee🎜Maintenant, nous pouvons utiliser findEmployeesInDepartment pour obtenir tous les employés d'un service spécifique, comme indiqué ci-dessous : 🎜rrreee🎜Conclusion🎜🎜<code>@Query
Les annotations sont un outil puissant dans Hibernate qui nous permet d'effectuer des requêtes personnalisées. Nous pouvons écrire des requêtes en utilisant JPQL ou SQL natif et utiliser des paramètres nommés pour transmettre dynamiquement les paramètres de requête. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!