spring data jpa 支持以方法名进行查询/删除/统计。
查询的关键字为find
删除的关键字为delete/remove (>=1.7.x)
统计的关键字为count (>=1.7.x)
修改需要使用@Modifying注解
@Modifying
@Query("update User u set u.firstname = ?1 where u.lastname = ?2")
int setFixedFirstnameFor(String firstname, String lastname);
在确定查询/删除/统计后,在方法名后跟上限定关键字完成SQL中where条件的功能。
比如:
SysUser findByUsername(String username);
目前支持的限定关键字有:
Keyword
Sample
JPQL snippet
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> 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)
|
reference: http://docs.spring.io/spring-data/jpa/docs/1.8.1.RELEASE/reference/html/#specifications
分享到:
相关推荐
Spring Data JPA 提供了内置的支持,可以在查询方法中通过 `Pageable` 参数实现分页和排序。 5. **Auditing**:Spring Data JPA 提供了审计功能,可以自动记录实体的创建时间和修改时间。这可以通过 `@CreatedDate`...
Spring Data JPA API。 Spring Data JPA 开发文档。 官网 Spring Data JPA API。
1. **实体(Entities)**:在Spring Data JPA中,实体是数据库表的映射。通过在类上添加`@Entity`注解,我们可以声明一个Java类为数据库表的代表。`@Id`注解用于标识主键字段。 2. **Repository**:Repository是...
"spring data jpa官方文档中文翻译"则提供了Spring Data JPA的详细指南,包括其设计原理、基本概念、使用方法和最佳实践。"JPA2.0官方文档"则深入讲解了JPA规范的各个方面,包括实体管理、查询、事务和并发控制等。 ...
5. **Entity实体**:在Spring Data JPA中,业务对象被表示为@Entity注解的类,它们与数据库表相对应,属性对应表中的列。 6. **JPA注解**:例如@Id、@GeneratedValue、@Column、@Table等,这些注解用于在实体类上...
Spring Data JPA是Spring生态中的一个强大ORM框架,它极大地提高了Java开发者在处理数据库操作时的效率。Spring Data JPA的主要优点在于其高度的开发效率、成熟的语法结构以及与Spring框架的紧密集成。 1. **开发...
Spring Data JPA是Java开发中的一个关键框架,它简化了与关系型数据库的交互,特别是基于Java Persistence API (JPA)。这个框架是Spring生态系统的组成部分,为开发者提供了声明式数据访问的方式,允许通过简单的...
在本项目中,我们主要探讨如何手动构建一个基于SpringMVC、Spring Data JPA、Hibernate以及FreeMarker模板引擎的Maven工程,同时实现环境切换功能。这个基础框架为日常开发工作提供了必要的支持。 首先,SpringMVC...
JpaRepository 是 Spring Data JPA 中提供的一个基础接口,它扩展自 PagingAndSortingRepository,并且增加了一些额外的、常用的操作方法。通过实现 JpaRepository 接口,开发者可以得到一系列的预定义方法,例如...
在项目中引入 Spring Data JPA 和相应的 JPA 实现(如 Hibernate),配置实体扫描路径、数据源、JPA 配置、Repository 扫描等。 **4. 实体类与表的映射** 使用 `@Entity` 注解标记实体类,`@Table` 定义对应的...
如果默认的CRUD方法不能满足需求,可以通过在Repository 接口中定义查询方法,Spring Data JPA 会根据方法名自动构建SQL。例如,`findByEmail` 方法会生成一个查找指定邮箱用户的查询。 6. **Service 层** 在业务...
在Spring Data JPA中,主要包含以下几个核心知识点: 1. **Repository接口**:这是Spring Data JPA的核心特性之一,通过定义一组通用的CRUD(创建、读取、更新、删除)操作接口,开发者可以快速实现数据访问层。...
在接口中定义的方法名,SpringDataJPA会根据命名规则自动识别该方法需要完成什么操作,并且自动生成相应的实现代码。开发者可以使用如下几种方式来定义接口: 1. 继承`JpaRepository`接口,该接口提供了大量通用的...
在Spring Boot框架中,Spring Data JPA的集成变得更加简单。Spring Boot通过自动配置,可以快速启动一个JPA应用,只需少量甚至无需配置。同时,Spring Boot还支持数据源的自动配置,使得开发者可以快速连接到数据库...
首先,我们需要在项目中引入 Spring Data JPA 的相关依赖。如果你使用的是 Maven,可以在 `pom.xml` 文件中添加以下依赖: ```xml <groupId>org.springframework.boot <artifactId>spring-boot-starter-data-jpa...
2. **Query 方法**:在Repository接口中,可以定义方法名,Spring Data JPA会根据方法名自动构造对应的JPA查询。例如,`findAll()`对应于SQL的`SELECT * FROM table`,`findByUsername(String username)`对应于`...
- Entity类:这是JPA中的核心,用来映射数据库表。我们需使用@Entity注解标记实体类,并用@Id注解标识主键字段。 - Repository接口:Spring Data JPA通过Repository接口提供数据库操作。开发者可以自定义接口并继承...
Spring Data JPA是Spring生态系统中的一个重要组件,它为开发者提供了与JPA(Java Persistence API)交互的简化接口,极大地提高了数据访问的效率。本教程将深入探讨如何在Spring Boot项目中整合Spring Data JPA,...