JPA自定义SQL查询
关于自定义SQL查询,方法名可以随意取(遵循驼峰命名法,方法名需能一眼看出此方法的用处),不需要遵循JPA制订的规则来起方法名。
自定义SQL 是指:在方法上使用 @Query 注解,然后写sql。
@Query注解中有两个常用的属性,value(定义sql),nativeQuery (true表示数据的sql,false表示HQL,默认值是false) 。当 @Query注解中设置 nativeQuery = true 时即可以使用原生SQL进行查询,sql里面的表名和字段都是使用的数据库里面的(带有下划线),当@Query注解中设置 nativeQuery = false时,sql里面表名和字段都是使用定义实体类的变量名(驼峰命名)。
注意:HQL不支持limit语法,一般来说建议采用 nativeQuery=true,可以实现稍微复杂的一些连表查询。
-
单条件查询
-
多条件查询
-
复杂多条件查询
-
根据client_Key修改数据
在**@Query注解中,编写 JPQL 实现 DELETE和UPDATE** 操作时必须加上**@Modifying** 注解,以通知Spring Data 这是一个DELETE和UPDATE操作。DELETE和UPDATE操作需要使用事务,此时需要定义Service 层,在Service 层的方法上添加事务操作。
@Modifying 注解中有两个属性:flushAutomatically、clearAutomatically,从字面理解是自动刷新和自动清除。
自动刷新,即执行完语句后立即将变化内容刷新到磁盘。
自动清除,即执行完语句后自动清除掉已经过期的实体,比如,我们删除了一个实体,但是还没有执行flush操作时,这个实体还存在于实体管理器EntityManager中,但这个实体已经过期没有任何用处了,知道flush操作时才会被删掉。如果希望在删除实体时立刻将该实体从实体管理器中删除,则可将属性设置为true。
-
模糊查询
-
分页查询
JPA在查询方法中传入参数Pageable 对象来实现分页功能,通过该参数可得到和分页相关的所有信息。有多个参数时,Pageable 作为最后一个参数。
Pageable对象创建的方法:
Page:第几页,从0开始,默认为第0页
size:每一页的大小,默认为20
sort:排序方式;
文章来源:https://www.toymoban.com/news/detail-433293.html
接口调用:
Page对象相关方法
文章来源地址https://www.toymoban.com/news/detail-433293.html
到了这里,关于JPA自定义SQL查询的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!