SpringBoot的@Query查询用法
时间: 2024-05-03 13:02:08 浏览: 175
Spring Boot的@Query查询用法是通过在Repository中定义查询方法,使用JPA的@Query注解来实现查询。@Query注解可以使用JPQL(Java Persistence Query Language)和Native SQL语言。
1. JPQL查询
JPQL查询是通过在@Query注解中使用JPQL语言实现的。示例如下:
```
public interface UserRepository extends JpaRepository<User, Long> {
@Query("select u from User u where u.name = ?1 and u.age = ?2")
List<User> findByNameAndAge(String name, int age);
}
```
在上面的示例中,我们定义了一个名为findByNameAndAge的方法,使用了@Query注解,并在注解中使用JPQL语言进行查询。在JPQL语言中,我们使用了实体类名“User”代替表名,并通过“u.name”和“u.age”代替了表中的字段名。
2. Native SQL查询
Native SQL查询是通过在@Query注解中使用Native SQL语言实现的。示例如下:
```
public interface UserRepository extends JpaRepository<User, Long> {
@Query(value = "select * from user u where u.name = ?1 and u.age = ?2", nativeQuery = true)
List<User> findByNameAndAge(String name, int age);
}
```
在上面的示例中,我们同样定义了一个名为findByNameAndAge的方法,使用了@Query注解,并在注解中使用Native SQL语言进行查询。在Native SQL语言中,我们直接使用表名“user”和字段名“name”和“age”。同时,我们还需要将nativeQuery属性设置为true,以表示这是一个Native SQL查询。
阅读全文