2016-11-21 26 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