1. 简单条件查询
简单条件查询是指查询某一实体类或者实体类的集合。
/**
* 在Repository子接口中声明方法规范:
* 1. 不是随便声明的,而需要符合一定的规范
* 2. 查询方法以find | read | get开头
* 3. 涉及条件查询时,条件的属性用条件关键字连接
* 4. 要注意的是:条件属性首字母需要大写
* 5. 支持属性的级联查询,但若当前类有符合条件的属性则优先使用,而不使用级联属性
* 若需要使用级联属性,则属性之间使用_强制进行连接
*/
2. 支持的关键字
直接在接口中定义查询方法,如果是符合规范的,可以不用写实现,目前支持的关键字写法如下:
3. 查询方法解析流程
package com.qiaobc.springdata.service;
import java.util.Date;
import java.util.List;
import org.springframework.data.repository.Repository;
import com.qiaobc.springdata.entities.Person;
/**
* 在Repository子接口中声明方法规范:
* 1. 不是随便声明的,而需要符合一定的规范
* 2. 查询方法以find | read | get开头
* 3. 涉及条件查询时,条件的属性用条件关键字连接
* 4. 要注意的是:条件属性首字母需要大写
* 5. 支持属性的级联查询,但若当前类有符合条件的属性则优先使用,而不使用级联属性
* 若需要使用级联属性,则属性之间使用_强制进行连接
*/
public interface PersonRepository extends Repository<Person, Integer> {
// 根据name属性值获取对应的Person对象
Person getByName(String name);
// WHERE name LIKE ?% AND id < ?
List<Person> getByNameStartingWithAndIdLessThan(String name, Integer id);
// WHERE email IN (?, ?, ?) OR birthday < ?
List<Person> getByEmailInOrBirthdayLessThan(List<String> emails, Date birthday);
// WHERE a.id > ?
// Address_Id : 表示根据当前实体类的address属性的id进行查询
List<Person> getByAddress_IdGreaterThan(Integer id);
}