名称规则(根据条件进行查询)
详细规则请查看文档
表达式
例子
hql查询语句
And
findByLastnameAndFirstname
… where x.lastname = ?1 and x.firstname = ?2
Or
findByLastnameOrFirstname
… where x.lastname = ?1 or x.firstname = ?2
Is,Equals
findByFirstname,findByFirstnameIs,findByFirstnameEqual
… where x.firstname = 1?
Between
findByStartDateBetween
… where x.startDate between 1? and ?2
LessThan(lt)
findByAgeLessThan
… where x.age < ?1
LessThanEqual(le)
findByAgeLessThanEqual
… where x.age <= ?1
GreaterThan
findByAgeGreaterThan
… where x.age > ?1
GreaterThanEqual
findByAgeGreaterThanEqual
… where x.age >= ?1
After
findByStartDateAfter
… where x.startDate > ?1
Before
findByStartDateBefore
… where x.startDate < ?1
IsNull
findByAgeIsNull
… where x.age is null
IsNotNull,NotNull
findByAge(Is)NotNull
… where x.age not null
Like
findByFirstnameLike
… where x.firstname like ?1
NotLike
findByFirstnameNotLike
… where x.firstname not like ?1
StartingWith
findByFirstnameStartingWith
… where x.firstname like ?1 (parameter bound with appended %)
EndingWith
findByFirstnameEndingWith
… where x.firstname like ?1 (parameter bound with prepended %)
Containing
findByFirstnameContaining
… where x.firstname like ?1 (parameter bound wrapped in %)
OrderBy
findByAgeOrderByLastnameDesc
… where x.age = ?1 order by x.lastname desc
Not
findByLastnameNot
… where x.lastname <> ?1
In
findByAgeIn(Collection ages)
… where x.age in ?1
NotIn
findByAgeNotIn(Collection age)
… where x.age not in ?1
True
findByActiveTrue()
… where x.active = true
False
findByActiveFalse()
… where x.active = false
IgnoreCase
findByFirstnameIgnoreCase
… where UPPER(x.firstame) = UPPER(?1)
/**
* 根据规范(SpringDataJpa)写方法名,就可以进行查询
* @param username
* @return
* username =?
*/
//根据用户名查询一个员工
Employee findByUsername(String username);
//用户名模糊查询 username like ?
List<Employee> findByUsernameLike(String username);
//用户名与邮件模糊查询 username like ? and email like ?
List<Employee> findByUsernameLikeAndEmailLike(String username,String email);
Query注解查询
@Query
//根据用户名获取用户
@Query("select o from Employee o where o.username =?1")
Employee query01(String username);
//用户名与邮件模糊查询 username like ? and email like ?
@Query("select o from Employee o where o.username like ?1 and o.email like ?2")
List<Employee> query02(String username,String email);
// @Query("select o from Employee o where o.username like :username and o.email like :email")
// List<Employee> query02(@Param("username") String username,@Param("email") String email);
//直接写原生的SQL
@Query(nativeQuery=true,value="select * from employee")
List<Employee> query03();