查詢方法
標準的 CRUD 功能儲存庫通常對底層資料儲存執行查詢。使用 Spring Data,宣告這些查詢將成為一個四步過程
-
宣告一個擴充套件 Repository 或其子介面之一的介面,並將其型別化為它應該處理的域類和 ID 型別,如以下示例所示
interface PersonRepository extends Repository<Person, Long> { … } -
在介面上宣告查詢方法。
interface PersonRepository extends Repository<Person, Long> { List<Person> findByLastname(String lastname); } -
使用 JavaConfig 或 XML 配置設定 Spring 來為這些介面建立代理例項。
-
Java
-
XML
import org.springframework.data.….repository.config.EnableNeo4jRepositories; @EnableNeo4jRepositories class Config { … }<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jpa="http://www.springframework.org/schema/data/jpa" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/data/jpa https://www.springframework.org/schema/data/jpa/spring-jpa.xsd"> <repositories base-package="com.acme.repositories"/> </beans>此示例使用 JPA 名稱空間。如果您將儲存庫抽象用於任何其他儲存,則需要將其更改為您的儲存模組的相應名稱空間宣告。換句話說,您應該將
jpa替換為,例如,mongodb。請注意,JavaConfig 變體沒有顯式配置包,因為預設情況下會使用帶註解類的包。要自定義要掃描的包,請使用資料儲存特定倉庫的
@EnableNeo4jRepositories註解的basePackage…屬性之一。 -
-
注入儲存庫例項並使用它,如以下示例所示
class SomeClient { private final PersonRepository repository; SomeClient(PersonRepository repository) { this.repository = repository; } void doSomething() { List<Person> persons = repository.findByLastname("Matthews"); } }
以下部分將詳細解釋每個步驟