jpa 去重_SpringDataJPA系统(3)

本文介绍了Spring Data JPA的Defining Query Methods (DQM)特性,通过方法名和参数简化查询,提升开发效率。DQM支持直接通过方法名和@Query注解定义查询。文章详细讲解了DQM的命名语法,包括去重、排序、分页等功能,并给出了示例代码,展示了如何实现根据邮箱查询用户等操作。
摘要由CSDN通过智能技术生成

DQM的命名语法与参数

在工作中,你是否经常为方法名的语义、命名规范而发愁?是否要为不同的查询条件写各种的 SQL 语句?是否为同一个实体的查询,写一个超级通用的查询方法或者 SQL?如果其他开发同事不查看你写的 SQL 语句,而直接看方法名的话,却不知道你想查什么而郁闷?

Spring Data JPA 的 Defining Query Methods(DQM)通过方法名和参数,可以很好地解决上面的问题,也能让我们的方法名的语义更加清晰,开发效率也会提升很多。

可以说Spring Data JPA 的最大特色是利用方法名定义查询方法(Defining Query Methods)来做 CRUD 操作。

DQM 语法共有 2 种,可以实现上面的那些问题:

一种是直接通过方法名就可以实现

另一种是 @Query 手动在方法上定义

定义查询方法的配置和使用方法

若想要实现 CRUD 的操作,常规做法是写一大堆 SQL 语句。但在 JPA 里面,只需要继承 Spring Data Common 里面的任意 Repository 接口或者子接口,然后直接通过方法名就可以实现,神不神奇?

比如我们要增加一个根据Email地址来查询用户,可以在接口中这么写:

e5f3aee4ef6d48a0dd8240d6467e73f7.png

然后你不用写具体的实现就可以直接使用该方法来达到根据邮箱地址查询用户的目的了,测试下该方法,完全没问题

9507ea0dc90a3408795aba4d1ca78f09.png

66c8a2fb70d9057beac47ea9b14619cd.png

方法查询策略设置

在平时的工作中,你可以通过方法名,或者定义方法名上面添加 @Query 注解两种方式来实现 CRUD 的目的,而 Spring 给我们提供了两种切换方式。

在实际生产中还没有遇到要修改默认策略的情况,但我们必须要知道有这样的配置方法,做到心中有数,这样我们才能知道为什么方法名可以,@Query 也可以。

通过 @E

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值