Spring Data JPA 支持通过定义在Repository接口的方法名来定义查询,而方法名是根据实体类的属性名来确定的。

二 常规查询

根据属性名来定义查询方法,示例如下:

  1. public interface PersonRepo extends JpaRepository<Person,Long>{

  2. //相对于名字相等查询,参数为name

  3. List<Person> findByName(String name);

  4. //通过名字like查询,参数为name

  5. List<Person> findByNameLike(String name);

  6. //通过名字和地址查询,参数为name和address

  7. List<Person> findByNameAndAddress(String name,String address);

  8. }

从代码可以看出,使用了findBy、Like,And这样的关键字,其中findBy可以用find、read、readBy、query、queryBy,get、getBy来代替。

三 限制结果数量

结果数量是用top和first关键字来实现的,示例如下:

  1. public interface PersonRepo extends JpaRepository<Person,Long>{

  2. //查询符合查询条件的前10条数据

  3. List<Person> findFirst10ByName(String name);

  4. //获得符合查询条件的前30条数据

  5. List<Person> findTop30ByName(String name);

  6. }

四 查询关键字列表

参考官网: Spring Data JPA - Reference Documentation

关键字

示例

功能同JPQL

And

findByLastnameAndFirstname

… where x.lastname = ?1 and x.firstname = ?2

Or

findByLastnameOrFirstname

… where x.lastname = ?1 or x.firstname = ?2

Is,Equals

findByFirstname,findByFirstnameIs,findByFirstnameEquals

… where x.firstname = ?1

Between

findByStartDateBetween

… where x.startDate between ?1 and ?2

LessThan

findByAgeLessThan

… where x.age < ?1

LessThanEqual

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<Age> ages)

… where x.age in ?1

NotIn

findByAgeNotIn(Collection<Age> ages)

… 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)

原文链接: https://blog.csdn.net/chengqiuming/article/details/82528961 版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接 ,博主地址:http://blog.csdn.net/xuyonjin JPA JPA 是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 JPA 的目标之一是制定一个可以由很多供应商实... *findByName ==== 根据客户名称 查询 * 在 spring data jpa 的运行阶段 会根据方法名称进行解析 findBy 翻译成 from... Spring Data JPA 方法命名规则 查询 按照 Spring Data JPA 定义的规则, 查询 方法以findBy开头,涉及条件 查询 时,条件的 属性 用条件关键字连接,要注意的是:条件 属性 首字母需大写。框架在进行方法名解析时,会先把方法名多余的前缀截取掉,然后对剩下部分进行解析。 测试一:测试方法命名规则的 查询 查询 方式 精准(默认)): findBy 对象中的 属性 名(首字母... 1、语法:List findByAgeAndNameOrderByAge(Int age,String name);        a、简单理解,find 查询 ,by通过,age 和 name 按照age进行排序 以下(后续补充)忽略: 2、criteriaBuilder 的简单用法。 a.创建criteriaBuilder  CriteriaBuilder criteriaBui Spring Boot Jpa 使用findBy报错 Jpa Failed to create query for method public abstract com.zhl.internback.domain.Student com.zhl.internback.repository.StudentRepository.findByStunum(int)! 下面这段是小白理解,望指正: Jpa 的findBy对于常用的字段名(比如name,password,id等)是有自动生成sql语句的方法的,但对于用户 一、什么是 jpa JPA 本身不是一个工具或框架; 相反,它定义了一组可以由任何工具或框架实现的概念。虽然 JPA 的对象关系映射(ORM)模型最初基于Hibernate,但它已经发展了。简单来说, JPA 只是一个简化对象关系映射来管理Java应用程序中的关系数据的规范。 它提供了一个平台,可以直接使用对象而不是使用SQL语句。 二、什么是Hibernate Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,是一个全自动的ORM框架,它可以自动生成SQL语句,自动执 https://blog.csdn.net/blueheart20/article/details/78227473?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v1~rank_v31_ecpm-2-78227473.pc_agg_new_rank&utm_term= jpa %E8%AE%BE%E7%BD%AE%E6%9C%80%E5%A4%A7%E6%9F% public interface UserRepository extends Repository&lt;User, Long&gt; { List&lt;User&gt; findByEmailAddressAndLastname(Strin... Sort(Direction.DESC,String properties),Direction指定排序方式,properties指定排序的字段 Sort(Direction direction, List pro...   顾名思义:即根据主键 查询 一个实体。在 JPA 中提供了两个方法。分别是:   find(Class entityClass,Object id);   getReference(Class entityClass,Object id); 他们的区别是: 查询 的时机不一样:   find 的方法是立即加载,只要一调用方法就马上发起 查询 。   getReferenc...