Spring Data JPA 命名规则

表结构:

import lombok.Data;

@Data
public class User {
    
    

	/**
     * 主键
     */
	@Id
    @GeneratedValue
	private Long id;
    /**
     * 姓
     */
    private String firstName;
    /**
     * 名
     */
    private String lastName;
    /**
     * 年龄
     */
    private int age;
    /**
     * 出生日期
     */
    private Long birthDate;
    /**
     * 是否有效
     */
    private Boolean enable;

}

常用JPA语句如下:

// 查询出生日期在1990年到2000年之间的用户
// start  = 628358400000 (1990-00-00 00:00:00 1990年第一秒)
// end = 978278399000 (2000-12-31 23:59:59 2000年的最后一秒)
List<User> findByBirthDateBetween(Long start , Long end);

// 查询20岁的用户,并且根据id 降序排列 参数 age = 20  不加Desc 默认升序
List<User> findByAgeOrderByIdDesc(int age);

// 查询年龄在20-30岁的用户 start = 20 , end =30,这边是包括20岁和30岁的
List<User> findByAgeBetween(int start , int end);

// 查询小于20岁的用户信息  参数 age = 20
List<User> findByAgeLessThan(int age);
// 查询小于等于20岁的用户 参数 age = 20
List<User> findByAgeLessThanEqual(int age);

// 查询大于30岁的用户 参数 age = 30
List<User> findByAgeGreaterThan(int age);
// 查询大于等于30岁的用户 参数 age = 30
List<User> findByAgeGreaterThanEqual(int age);

// 所有年龄等于20,21,22的用户 参数如下:
List<Integer> list = new ArrayList<>();
list.add(20);
list.add(21);
list.add(22);
List<User> findByAgeIn(List<Integer> list);
// 相反可以查询年龄不等于20,21,22的用户
List<User> findByAgeNotIn(List<Integer> list);

// 根据用户姓名查询
List<User> findByFirstNameAndLastName(String firstName , String lastName);

// 查询所有 姓"毛" 的用户
// 第一种写法 firstName = "毛%" 采用后匹配
List<User> findByFirstNameLike(String firstName);
// 第二种写法,这边 firstName = "毛",不需要拼接%
List<User> findByFirstNameStartingWith(String firstName);

// 有StartingWith同样肯定就有EndWith,这边查询所有以"烽"结尾的用户信息,同理这边也不需要拼接%
List<User> findByLastNameEndWith(String lastName);

// 如果第一种写法传入的参数是 firstName = "%毛%",前后都用百分号,就是包含名字中包含"毛"的用户都会被查出来
// 还有一种不需要前后拼接%的写法也能查询所有的名字中包含%的用户
List<User> findByFirstNameContainig(String firstName);

// 查询 姓或者名 为"毛" 的用户
// 这边参数 firstName = "毛" , lastName= "毛"
List<User> findByFirstNameOrListName(String firstName , String lastName);

// 查询所有有效用户信息,这边不需要传参数了
List<User> findByEnableTrue();
// 相反查所有无效用户信息
List<User> findByEnableFalse();

// 查询 姓 不是null的用户
List<User> findByFirstNameIsNotNull();
// 查询 姓 等于null的用户
List<User> findByFirstNameIsNull();

// 统计小于20岁的用户数量  参数 age = 20
Integer countByAgeLessThan(int age);

猜你喜欢

转载自blog.csdn.net/weixin_45452416/article/details/110825711