当前位置: 首页 > news >正文

Spring Data JPA 派生查询方法命名速查表

Spring Data JPA 派生查询方法命名速查表

🚀 1. 基本结构

findBy + 属性名 + [运算符] + [And/Or + 其它条件]

📝 2. 常见关键字

(1)精确匹配

关键字示例生成的 SQL
findByfindByUserId(String id)WHERE user_id = ?
findBy...And...findByFileMd5AndUserId(String f, String u)WHERE file_md5 = ? AND user_id = ?
findBy...Or...findByNameOrEmail(String n, String e)WHERE name = ? OR email = ?

(2)比较运算

关键字示例SQL
LessThanfindBySizeLessThan(Long size)<
LessThanEqualfindBySizeLessThanEqual(Long size)<=
GreaterThanfindBySizeGreaterThan(Long size)>
GreaterThanEqualfindBySizeGreaterThanEqual(Long size)>=
BetweenfindByCreatedAtBetween(Date d1, Date d2)BETWEEN ? AND ?

(3)模糊匹配

关键字示例SQL
LikefindByNameLike(String n)LIKE ?
ContainingfindByNameContaining(String n)LIKE %?%
StartingWithfindByNameStartingWith(String n)LIKE ?%
EndingWithfindByNameEndingWith(String n)LIKE %?

(4)空值/布尔

关键字示例SQL
IsNullfindByOrgTagIsNull()IS NULL
IsNotNullfindByOrgTagIsNotNull()IS NOT NULL
TruefindByIsPublicTrue()is_public = true
FalsefindByIsPublicFalse()is_public = false

(5)排序 / 限制

关键字示例SQL
OrderByfindByUserIdOrderByCreatedAtDesc(String id)ORDER BY created_at DESC
FirstfindFirstByOrderByCreatedAtDesc()LIMIT 1
TopfindTop3ByStatusOrderByCreatedAtDesc()LIMIT 3

(6)集合 / In 查询

关键字示例SQL
InfindByUserIdIn(List<String> ids)user_id IN (?)
NotInfindByUserIdNotIn(List<String> ids)user_id NOT IN (?)

🎯 3. 小技巧

  1. 返回类型

    • List<Entity> → 多个结果
    • Optional<Entity> → 单个可空结果
    • Entity → 单个结果(可能 NPE,不推荐)
    • Page<Entity> → 分页
    • Slice<Entity> → 游标式分页
  2. 复杂查询 → 如果命名太长,最好用 @Query 注解写 JPQL/SQL。


✅ 总结:
findByFileMd5AndUserId(...) 就是 派生查询,属于最常见的命名规则。
以后写 Repository 方法,就按这个表组合单词,Spring Data JPA 会自动帮你生成 SQL。

http://www.xdnf.cn/news/1410193.html

相关文章:

  • 平滑滤波器(Smooth Filter)的MATLAB与Verilog仿真设计与实现
  • linux内核trace_begin和trace_end使用分析
  • ICode总线原理
  • 【Bluedroid】A2DP Source 音频传输停止流程及资源管理机制(btif_a2dp_source_stop_audio_req)
  • ESP32学习笔记_Peripherals(5)——SPI主机通信
  • 编写一个名为 tfgets 的 fgets 函数版本
  • FPGA入门指南:从零开始的可编程逻辑世界探索
  • deep seek的对话记录如何导出
  • 【大数据技术实战】流式计算 Flink~生产错误实战解析
  • Springcloud-----Nacos
  • 【Spring Cloud微服务】7.拆解分布式事务与CAP理论:从理论到实践,打造数据一致性堡垒
  • Java试题-选择题(25)
  • 【Java进阶】Java与SpringBoot线程池深度优化指南
  • 【计算机组成原理·信息】2数据②
  • SpringAI应用开发面试全流程:核心技术、工程架构与业务场景深度解析
  • 第2.5节:中文大模型(文心一言、通义千问、讯飞星火)
  • 【系统分析师】高分论文:论网络系统的安全设计
  • 【51单片机】【protues仿真】基于51单片机音乐喷泉系统
  • Mysql什么时候建临时表
  • MySQL直接启动命令mysqld详解:从参数说明到故障排查
  • 策略模式:灵活应对算法动态切换
  • 探索数据结构中的 “树”:揭开层次关系的奥秘
  • 3【鸿蒙/OpenHarmony/NDK】如何在鸿蒙应用中使用NDK?
  • Makefile语句解析:头文件目录自动发现与包含标志生成
  • 【读论文】自监督消除高光谱成像中的非独立噪声
  • AI 取代部分岗位后:哪些职业更易被替代?人类该如何提升 “不可替代性”?
  • 硬件-电感学习DAY6——电感磁芯损耗全解析
  • 多人协作开发指南二
  • GPU-Driven Rendering inAssassin’s Creed Mirage
  • Android开发简介