4.3。查询方法
4.3.1。查询查询策略
JPA模块支持以String形式手动定义查询,或者从方法名称派生它。
声明的查询
尽管获取从方法名派生的查询非常方便,但可能会遇到这样的情况,即方法名解析器不支持要使用的关键字,或者方法名称会不必要地变得难看。所以,你可以通过命名约定使用JPA命名查询(请参阅使用JPA NamedQueries获取更多信息)或相当具有注解你的查询方法@Query
(请参阅使用@Query了解详细信息)。
4.3.2。查询创建
通常,JPA的查询创建机制按查询方法中的描述工作。以下是JPA查询方法转化为的一个简短示例:
公共接口UserRepository扩展了Repository <User,Long> { List <User> findByEmailAddressAndLastname(String emailAddress,String lastname); }
我们将使用JPA标准API从此创建一个查询,但本质上这转换为以下查询:select u from User u where u.emailAddress = ?1 and u.lastname = ?2
。Spring Data JPA将执行属性检查并遍历属性表达式中所述的嵌套属性。以下是对JPA支持的关键字的概述,以及包含该关键字本质的翻译方法。
关键词 | 样品 | JPQL片段 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|