SpringData JPA中的方法命名规则的查询

	 /**
     * 方法名称规则查询:
     *      findBy开头:	代表查询
     *          + 对象中属性名称(首字母大写)--查询的条件
     *          默认情况使用 等于 的方式进行查询
     *       findByCustName --根据用户名称进行查询
     *     findBy + 属性名 (根据属性名匹配完成查询=)
     *     findBy + 属性名 + “查询方式(like | isnull)”
     *          findByCustNameLike
     *     多条件查询: findBy + 属性名 + “查询方式” + “多条件的连接符(and|or)” + 属性名 + “查询方式”
     */
    public Customer findByCustName(String name);
    public List<Customer> findByCustNameLike(String name);
    //使用客户名称模糊匹配和客户所属行业精准匹配的查询
    public Customer findByCustNameLikeAndCustIndustry(String name,String industry);

更多的关键字以及对应的jpql语句如下:

Keyword Sample JPQL
And findByLastnameAndFirstname … where x.lastname = ?1 and x.firstname = ?2
Or findByLastnameOrFirstname … where x.lastname = ?1 or x.firstname = ?2
Is,Equals findByFirstnameIs,findByFirstnameEquals … where x.firstname = ?1
Between findByStartDateBetween … where x.startDate between ?1 and ?2
LessThan findByAgeLessThan … where x.age < ?1
LessThanEqual indByAgeLessThanEqual … where x.age ⇐ ?1
GreaterThan findByAgeGreaterThan … where x.age > ?1
GreaterThanEqual findByAgeGreaterThanEqual … where x.age >= ?1
After findByStartDateAfter … where x.startDate > ?1
Before findByStartDateBefore … where x.startDate < ?1
IsNull findByAgeIsNull … where x.age is null
IsNotNull,NotNull findByAge(Is)NotNull … where x.age not null
Like findByFirstnameLike … where x.firstname like ?1
NotLike findByFirstnameNotLike … where x.firstname not like ?1
StartingWith findByFirstnameStartingWith … where x.firstname like ?1 (parameter bound with appended %)
EndingWith findByFirstnameEndingWith … where x.firstname like ?1 (parameter bound with prepended %)
Containing findByFirstnameContaining … where x.firstname like ?1 (parameter bound wrapped in %)
OrderBy findByAgeOrderByLastnameDesc … where x.age = ?1 order by x.lastname desc
Not findByLastnameNot … where x.lastname <> ?1
In findByAgeIn(Collection ages) … where x.age in ?1
NotIn findByAgeNotIn(Collection age) … where x.age not in ?1
TRUE findByActiveTrue() … where x.active = true
FALSE findByActiveFalse() … where x.active = false
IgnoreCase ndByFirstnameIgnoreCase … where UPPER(x.firstame) = UPPER(?1)
发布了8 篇原创文章 · 获赞 1 · 访问量 109

猜你喜欢

转载自blog.csdn.net/weixin_44218060/article/details/103804162
今日推荐