Spring Data JPA撑持JPQL语法,可以利用注解的体例自界说查询语句,可以利用sql原生的语法,也可以利用JPQL语法,我们利用@Query注解的value和nativeQuery的值。利用声明式的JPQL语句,可以在启动项目标时辰就知道语法是否准确,语法错误额时辰启动就会报错。
起首,声明的注解在Repository的查询方式上,例如 select u from User u 我们可以看出和原生sql有些分歧之处,别的也撑持 大于小于等查询select u from User u where u.age > 30。
利用注解实现恍惚查询,注重恍惚查询的字段不会主动加上%关头字的,需要在查询语句上手动去拼接,查询前提的写法也需要注重。
别的,也撑持原生的sql查询,只需要设置nativeQuery = true即可。nativeQuery 是不撑持直接传Sort参数进行排序的,我们直接在sql中利用order by进行排序,恍惚查询中%的拼接还可以利用concat关头字。
@Query注解在JPQL的环境下,可以利用PageRequest或者Sort参数,排序的字段需要和Entity实体类中的字段名称相匹配。利用Page对象进行领受的时辰,参数直接传Pageable即可。
对原生sql的分支撑持不太好用,注重鄙人图中#pageable#是必需的,查询和计数count要分隔写,别离写两条sql语句,利用起来比力麻烦,不太建议这么做,会让领受代码的人很难看懂,这种环境下就可以考虑将成果查出背工动分页了。
@Param注解的利用,一般环境下方式的传参是经由过程挨次绑心猿意马的体例进行的,传参时很轻易弄错参数的位置,利用@Param注解可以绑心猿意马参数传参时的具体名称,很是适用。
最后再介绍一下@Modifying注解,该注解的感化是点窜和删除,共同@Query注解,利用JPQL或者原生sql进行操作,代码如下图所示。
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!