24 lines
1.5 KiB
Markdown
24 lines
1.5 KiB
Markdown
### 28.3.2. Spring Data JPA仓库
|
||
|
||
Spring Data JPA仓库(repositories)是用来定义访问数据的接口。根据你的方法名,JPA查询会被自动创建。比如,一个CityRepository接口可能声明一个findAllByState(String state)方法,用来查找给定状态的所有城市。
|
||
|
||
对于比较复杂的查询,你可以使用Spring Data的[Query](http://docs.spring.io/spring-data/jpa/docs/current/api/org/springframework/data/jpa/repository/Query.html)来注解你的方法。
|
||
|
||
Spring Data仓库通常继承自[Repository](http://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/repository/Repository.html)或[CrudRepository](http://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/repository/CrudRepository.html)接口。如果你使用自动配置,包括在你的主配置类(被@EnableAutoConfiguration或@SpringBootApplication注解的类)的包下的仓库将会被搜索。
|
||
|
||
下面是一个传统的Spring Data仓库:
|
||
```java
|
||
package com.example.myapp.domain;
|
||
|
||
import org.springframework.data.domain.*;
|
||
import org.springframework.data.repository.*;
|
||
|
||
public interface CityRepository extends Repository<City, Long> {
|
||
|
||
Page<City> findAll(Pageable pageable);
|
||
|
||
City findByNameAndCountryAllIgnoringCase(String name, String country);
|
||
}
|
||
```
|
||
**注**:我们仅仅触及了Spring Data JPA的表面。具体查看它的[参考指南](http://projects.spring.io/spring-data-jpa/)。
|