2016-11-21 25 views
0

與Spring數據JPA每個例子中定義的方法列表中包含此方法:什麼是我可以在接口擴展CrudRepository

public interface PersonRepository extends CrudRepository<Person, Long> { 

     List<Person> findByLastName(@Param("name") String name); 

    } 

是否有可JPA + Hibernate的運行時實現再findByVarialbleName一些其他的方法我可以在倉庫中定義它?

+0

不,與JPA每一個例子並不包括。 JPA API沒有這樣的XXXRepository。那就是Spring Data JPA API,!= JPA API –

回答

1

請參閱query method document
一些示例查詢方法:

public interface PersonRepository extends Repository<User, Long> { 

    List<Person> findByEmailAddressAndLastname(EmailAddress emailAddress, String lastname); 

    // Enables the distinct flag for the query 
    List<Person> findDistinctPeopleByLastnameOrFirstname(String lastname, String firstname); 
    List<Person> findPeopleDistinctByLastnameOrFirstname(String lastname, String firstname); 

    // Enabling ignoring case for an individual property 
    List<Person> findByLastnameIgnoreCase(String lastname); 
    // Enabling ignoring case for all suitable properties 
    List<Person> findByLastnameAndFirstnameAllIgnoreCase(String lastname, String firstname); 

    // Enabling static ORDER BY for a query 
    List<Person> findByLastnameOrderByFirstnameAsc(String lastname); 
    List<Person> findByLastnameOrderByFirstnameDesc(String lastname); 
} 

春數據JPA還支持deleteBycount

0

目前尚不清楚你在問什麼,但我認爲你在駕駛的是Query Methods。有一些默認方法支持(findAll,save等),但是您可以從實際方法名稱本身創建查詢,而對更復雜的查詢使用保留關鍵字。假設您的Person類也有int age變量。然後您可以創建一個查詢方法如下:Person findByLastNameAndAge(String lastName, int age)。在這裏,And是一個關鍵字,但還有很多其他的可以使用。查閱文檔,有很多例子。

http://docs.spring.io/spring-data/jpa/docs/1.8.x/reference/html/#repositories.query-methods.query-property-expressions