jpa查询

1.名字解析
规则去前缀 getBY findBy
然后看后缀 sort page
然后从左向右解析 然后从右向左 循环此过程.

jpa提供了一些关键的字

     And --- 等价于 SQL 中的 and 关键字,比如 findByUsernameAndPassword(String user, Striang pwd);
    Or --- 等价于 SQL 中的 or 关键字,比如 findByUsernameOrAddress(String user, String addr);
    Between --- 等价于 SQL 中的 between 关键字,比如 findBySalaryBetween(int max, int min);
    LessThan --- 等价于 SQL 中的 "<",比如 findBySalaryLessThan(int max);
    GreaterThan --- 等价于 SQL 中的">",比如 findBySalaryGreaterThan(int min);
    IsNull --- 等价于 SQL 中的 "is null",比如 findByUsernameIsNull();
    IsNotNull --- 等价于 SQL 中的 "is not null",比如 findByUsernameIsNotNull();
    NotNull --- 与 IsNotNull 等价;
    Like --- 等价于 SQL 中的 "like",比如 findByUsernameLike(String user);
    NotLike --- 等价于 SQL 中的 "not like",比如 findByUsernameNotLike(String user);
    OrderBy --- 等价于 SQL 中的 "order by",比如 findByUsernameOrderBySalaryAsc(String user);
    Not --- 等价于 SQL 中的 "! =",比如 findByUsernameNot(String user);
    In --- 等价于 SQL 中的 "in",比如 findByUsernameIn(Collection<String> userList) ,方法的参数可以是 Collection 类型,也可以是数组或者不定长参数;
    NotIn --- 等价于 SQL 中的 "not in",比如 findByUsernameNotIn(Collection<String> userList) ,方法的参数可以是 Collection 类型,也可以是数组或者不定长参数;

@Query 还有命名参数的配合使用 @Modifying 用于修改

Jpa命名语句查找
@NamedQuery(或 @NamedNativeQuery) 定义在orm.xml
需要满足”DomainClass.methodName()”的命名规则

创建顺序3种方式都存在时

<jpa:repositories> 提供了 query-lookup-strategy 属性,用以指定查找的顺序

有3种取值

    create --- 通过解析方法名字来创建查询。即使有符合的命名查询,或者方法通过 @Query 指定的查询语句,都将会被忽略。
    create-if-not-found --- 如果方法通过 @Query 指定了查询语句,则使用该语句实现查询;如果没有,则查找是否定义了符合条件的命名查询,如果找到,则使用该命名查询;如果两者都没有找到,则通过解析方法名字来创建查询。这是 query-lookup-strategy 属性的默认值。
    use-declared-query --- 如果方法通过 @Query 指定了查询语句,则使用该语句实现查询;如果没有,则查找是否定义了符合条件的命名查询,如果找到,则使用该命名查询;如果两者都没有找到,则抛出异常。

因为目前在用SpringBoot 好多配置都默认了 如果需要然后再单独查询

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值