SpringDataJpa @query注解查询
时间: 2023-07-06 21:14:25 浏览: 200
Spring Data JPA提供了多种方式进行查询,其中@Query注解是一种比较常用的方式。通过@Query注解,我们可以使用JPQL (Java Persistence Query Language) 或者SQL语句进行查询。
使用JPQL查询:
```java
@Query("select u from User u where u.name = ?1")
User findUserByName(String name);
```
使用SQL查询:
```java
@Query(value = "select * from user u where u.name = ?1", nativeQuery = true)
User findUserByName(String name);
```
其中,value属性指定了查询语句,nativeQuery属性用于指定是否使用原生SQL查询。如果nativeQuery=true,则使用原生SQL查询,否则使用JPQL查询。
如果查询语句需要传递参数,可以在方法参数中使用@Param注解:
```java
@Query("select u from User u where u.name = :name and u.age = :age")
User findUserByNameAndAge(@Param("name") String name, @Param("age") Integer age);
```
还可以使用@Query注解进行分页查询:
```java
@Query("select u from User u where u.name like %:name%")
Page<User> findUserByNameLike(@Param("name") String name, Pageable pageable);
```
其中,Pageable是Spring Data提供的分页类,可以通过它设置查询的页数、每页大小等信息。
阅读全文