面向小白的SpringBoot的JpaRepository解析查询简要说明

133 阅读1分钟

这是我参与2022首次更文挑战的第16天,活动详情查看:2022首次更文挑战

昨天我们说JpaRepository Bean的生成,前天说了代理的生成,今天我们把最后一块查询也扔锅里头绘了。

所以今天我们来说说查询和查询的解析。

QueryExecutorMethodInterceptor

根据参数获取查询策略,如果有策略就往下走生成查询,没有策略抛异常。 image.png

然后是生成查询,为空就是空查询。 image.png

查询是一个Map,根据我们的这个方法来映射对应的查询 image.png

查询的执行

往下翻,能看到查询的执行,一个invoke方法:

image.png

一共三步啊,获取一个方法,然后根据返回类型获取一个ExecutionAdapter,再根据ExecutionAdapter的apply方法,执行doInvoke方法

获取方法再获取参数,然后根据这个方法获取到的查询,执行查询。 image.png

查询解析

查询执行后的解析,我们可以看到这里有常见的增删改查,还有我们查询的count都是有的。 image.png

这里的Pattern.compile,就是可以指定字符串和规则进行截取的,比如要操作的表,操作参数,每个字段,是什么处理,都可以截取出来。

我们跟着上面,跟着箭头走,不迷路:

image.png

然后到了解析查询方法 image.png

然后到了创建查询,比较复杂。 image.png

此外,还有排序解析,orderby image.png

还有IgnoreCase

image.png