SpringBoot中JPA方法命名规则

Spring Data JPA 提供了一种基于方法名的查询创建机制,允许通过定义 Repository 接口中的方法名称来自动创建对应的数据库查询语句。

这种方法避免了硬编码 SQL 语句,提高了开发效率和代码的可读性。

以下是 Spring Data JPA 方法命名规则的一些关键点:

1、基础规则

        实体类属性:方法名中包含的实体类属性名称,将被转换成 SQL 查询中的列名。

        关键字:方法名中包含的关键字用于构建 SQL 查询的条件部分。

2、关键字

        find 或 get:用于指定查询操作。

        by:用于连接属性名称,可以省略。

        And、Or:用于连接多个查询条件,区分大小写。

        Not:用于表示否定条件。

        Between:用于表示范围查询。

        LessThan、GreaterThan:用于比较操作。

        Like:用于模糊匹配。

        StartingWith、EndingWith、Containing:用于字符串匹配。

        IsNull、IsNotNull:用于检查属性是否为空。

        OrderBy:用于排序,后跟属性名称和方向(Asc 或 Desc)。

3、示例:

        findAll():查询所有记录。

        findByUsername(String username):根据用户名查询记录。

        findByUsernameAndEmail(String username, String email):根据用户名和邮箱查询记录。

        findByUsernameOrEmail(String username, String email):根据用户名或邮箱查询记录。

        findByAgeGreaterThan(int age):查询年龄大于指定值的记录。

        findByLastNameStartingWith(String prefix):查询姓氏以指定前缀开始的记录。

        findByLastNameContaining(String substring):查询姓氏包含子串的记录。

        findByLastNameOrderByFirstNameAsc(String lastName):按名字升序查询姓氏相同的记录。

4、复杂查询

        对于更复杂的查询,可以结合使用多个关键字和属性。

        例如:
                findByLastNameContainingAndAgeGreaterThan(String lastName, int age):查询姓氏包含特定子串且年龄大于指定值的记录。

5、特殊情况

        如果实体类中的属性名与方法名中的关键字冲突,可以在属性名前加上_或()来区分。

        例如findByUser_Name(String name)。

        可以使用@Query注解来覆盖默认的查询行为,直接编写 JPQL 或原生 SQL 查询。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/871003.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android Settings应用 PreferenceScreen 条目隐藏实现和简单分析

Android Settings应用 PreferenceScreen 条目隐藏实现和简单分析 文章目录 Android Settings应用 PreferenceScreen 条目隐藏实现和简单分析一、前言二、隐藏实现1、xml 文件中隐藏PreferenceScreen 的某个条目2、普通Preference条目的隐藏的Java代码实现3、SwitchPreference条…

栈(Stack)与队列(Queue,Deque)

前言: 栈与队列在数据结构中用法都相对比较简单,是数据结构中经常用到的两种。 1.栈(Stack) (1)特点: 先入后出,后入先出。栈的底层就是一个数组(java原生库中&#x…

在PyQt中为自己开发的软件实现远程文件“一机一码”授权管理实例

在使用PyQt搞软件开发时,开发者往往想要给自己的软件添加一个授权机制,只有当客户提供了授权码并且开发者将授权码放在授权管理系统的时候,客户端才能正常启动。这几天小陶就在捣鼓这个事,发现确实是可行的。 如果没有进行授权&a…

品牌传播策略中的智能内容推荐系统研究分析报告

品牌传播策略中的智能内容推荐系统研究分析报告 一、引言 随着信息技术的快速发展和互联网应用的普及,品牌传播策略正面临前所未有的变革。智能内容推荐系统作为这一变革的重要工具,正逐渐成为品牌传播的核心策略之一。本报告旨在深入研究智能内容推荐系统在品牌传播中的应…

【Linux 基础】df -h 的输出信息解读

df -h 的输出信息 xxx:~$ df -h Filesystem Size Used Avail Use% Mounted on udev 16G 0 16G 0% /dev tmpfs 3.2G 792K 3.2G 1% /run /dev/sda1 32G 1.7G 30G 6% / tmpfs 16G 0 16G 0% /dev/shm tmp…

Ajax从零到实战

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…

深入理解 Java 中的 `Socket` 类

在网络编程中,Socket 类是一个关键工具,用于实现客户端与服务器之间的通信。它为开发者提供了底层的网络通信能力,使得在不同机器之间传输数据变得简单而高效。本文将深入探讨 Java 中的 Socket 类,涵盖其基本概念、使用方法、应用…

VR头显如何低延迟播放8K的RTSP|RTMP流

技术背景 我们在做Unity平台RTSP、RTMP播放器的时候,有公司提出来这样的技术需求,希望在头显播放全景的8K RTSP|RTMP直播流,8K的数据,对头显和播放器,都提出了新的要求,我们从几个方面,探讨下V…

SpringAOP的坑

AOP中几种常见的通知类型及其基本作用: Before:前置通知,在目标方法执行之前执行。After:后置通知,无论方法执行结果如何(包括异常),都会在目标方法执行之后执行。AfterReturning&a…

Elasticsearch 更新指定字段

Elasticsearch 更新指定字段 准备条件查询数据更新指定字段更新子级字段 准备条件 以下查询操作都基于索引crm_clue来操作,索引已经建过了,本文主要讲Elasticsearch更新指定字段语句,下面开始写更新语句执行更新啦! 查询数据 查…

MacOS 通过Docker安装宝塔面板搭建PHP开发环境

1、docker拉取ubuntu系统 docker pull ubuntu2、运行容器 docker run -i -t -d --name bt -p 20:20 -p 21:21 -p 80:80 -p 443:443 -p 888:888 -p 8888:8888 -p 3306:3306 -p 6379:6379 --privilegedtrue -v /Users/oi/Sites:/www/wwwroot ubuntu-v 后的 /Users/oi/Sites 代表…

【电子通识】什么是无源元件的认证用可靠性试验标准AEC-Q200?

目前电动汽车已经是一个大趋势,汽车上安装有由多个电子零部件构成的ECU(电子控制单元)。即使汽车在恶劣的环境下行驶,电子零部件也必须不出故障地正常工作。因此,车载电子零部件与消费类电子相比,要求其达到…

力扣71.简化路径

力扣71.简化路径 根据双斜杠 求出每一组夹在里面的字符串 处理有意义的字符串 将所有路径存在字符串数组中最后用所有剩余的路径名称 变为答案 class Solution {public:string simplifyPath(string path) {vector<string> res;string ans;string cnt"";int …

Yarn标签调度--HDP测试

hadoop版本从2.7.2版本开始 新增标签调度功能。 标签调度功能&#xff1a;可以给节点设置标签 让作业任务调度到这个设置的标签节点。 列入&#xff1a; 某个任务需要用到gpu资源&#xff0c;而gpu并非在每个节点上都有&#xff0c;通过对节点设置标签&#xff0c;可以使作业…

光伏规约转换器,光伏并网,逆变器配套锦浪。

光伏规约转换器&#xff0c;光伏并网&#xff0c;逆变器配套锦浪&#xff0c;科士达&#xff08;4针航插&#xff09;&#xff0c;首航&#xff08;16针&#xff09;线束。 光伏规约转换器&#xff0c;光伏并网&#xff0c;逆变器配套锦浪。

网工内推 | 网络运维、云计算工程师,NP以上认证,平均薪资10K

01 网络运维 &#x1f537;岗位职责 1、至少3年以上的网络运维相关工作经验; 2、熟悉VLAN、STP、OSPF、RIP、BGP等网络技术; 3、熟悉IPsec、SSL等VPN技术; 4、熟悉主流网络安全厂商的各种产品; 5、精通TCP/IP协议&#xff0c;熟悉主流网络产品设备的调试、配置方法: 6、有…

某某会员小程序后端性能优化

背景 某某会员小程序后台提供开放平台能力&#xff0c;为三方油站提供会员积分、优惠劵等api。当用户在油站加油&#xff0c;油站收银会调用我们系统为用户发放积分、优惠劵等。用户反馈慢&#xff0c;三方调用发放积分接口性能极低&#xff0c;耗时30s&#xff1b; 接口情况…

ARM平台实现Docker容器技术

什么是Docker&#xff1f; &#xff08;1&#xff09;Docker的架构 Docker是一个开源的应用容器引擎&#xff0c;让开发者可打包他们的应用以及依赖包到一个可移植的镜像中&#xff0c;然后发布到任何流行的Linux或Windows机器上&#xff0c;亦可实现虚拟化。容器是完全使用沙…

GESP 2023年12月C++二级真题

参考程序1&#xff1a; #include<iostream> using namespace std;int first,second; int m,n; int sum 0;int fn(int n) {if(n1) {return first;} else if (n2) {return second;} else {return fn(n-1)fn(n-2);} } int main() {cin>>first>>second;cin>…

LeetCode 374, 128, 17

目录 374. 猜数字大小题目链接标签思路代码 128. 最长连续序列题目链接标签Set思路代码 Sort思路代码 17. 电话号码的字母组合题目链接标签思路代码 374. 猜数字大小 题目链接 374. 猜数字大小 标签 二分查找 交互 思路 看到本题的标签 交互 感觉有些奇怪&#xff0c;交互…