最好利器easy-query就是efcore4j sqlsugar4j freesql4j
随着信创或者其他一系列面向领导编程导致部分使用C#的公司转型javajava下EfCore、SqlSugar、FreeSql的竞品或者替代品就是easy-query本章节我将介绍隐式分区分组在实际中如何使用并且带来秒杀全世界ORM的独特功能隐式Group又叫GroupJoin可以无缝合并多个相同子查询转java没有一个好用的orm怎么办我之前用sqlsugar的现在有没有sqlsugar-java我之前用efcore的现在是否有efcore-java我之前是freesql的粉丝转java后有没有freesql-java这一切的一切都随着easy-query的迭代而变得轻松介绍文档地址 项目主页 | 文档演示GITHUB地址 GitHub - dromara/easy-query: java/kotlin high performance lightweight solution for jdbc query,support oltp and olap query,一款java下面支持强类型、轻量级、高性能的ORM,致力于解决jdbc查询,拥有对象模型筛选、隐式子查询、隐式join · GitHubGITEE地址 https://gitee.com/dromara/easy-query数据库模型点击查看实体代码案例查询用户信息和最早开户的银行卡信息通过模型我们可以清晰的看到SysUser和BankCard是一对多的关系eq如何实现这种一对多的数据返回呢使用临时对象返回var list easyEntityQuery.queryable(SysUser.class) .select(user - { //定义最早开户的银行卡 SysBankCardProxy firstBankCard user.bankCards().orderBy(bankCard - bankCard.openTime().asc()).first(); return Select.DRAFT.of( user.id(), user.name(), firstBankCard.code(), firstBankCard.type(), firstBankCard.openTime(), firstBankCard.bank().name() ); }).toList();生成的sqlSELECT t.id AS value1, t.name AS value2, t3.code AS value3, t3.type AS value4, t3.open_time AS value5 , t4.name AS value6 FROM t_sys_user t LEFT JOIN ( SELECT t1.id, t1.uid, t1.code, t1.type, t1.bank_id , t1.open_time, ROW_NUMBER() OVER (PARTITION BY t1.uid ORDER BY t1.open_time ASC) AS __row__ FROM t_bank_card t1 ) t3 ON t3.uid t.id AND t3.__row__ 1 INNER JOIN t_bank t4 ON t4.id t3.bank_id查询用户至少有5张储蓄卡且没有信用卡的用户信息和对应的第4张储蓄卡信息分解条件要先找出用户至少有5张储蓄卡要找出用户没有信用卡要返回用户信息额外返回用户的第4张储蓄卡信息//新创建一个dto用来接收而不是使用临时对象 Data EntityProxy public class UserDTO2 { private String id; private String name; private String thirdCardType; private String thirdCardCode; private String thirdCardBankName; } ListUserDTO2 list easyEntityQuery.queryable(SysUser.class) .where(user - { //用户至少有三张储蓄卡 user.bankCards().where(c - c.type().eq(储蓄卡)).count().gt(4L); //用户没有信用卡 user.bankCards().where(c - c.type().eq(信用卡)).none(); }) .select(user - { SysBankCardProxy thirdCard user.bankCards().orderBy(bankCard - bankCard.openTime().asc()).element(3); return new UserDTO2Proxy() .id().set(user.id()) .name().set(user.name()) .thirdCardType().set(thirdCard.type()) .thirdCardCode().set(thirdCard.code()) .thirdCardBankName().set(thirdCard.bank().name()); }).toList();最终生成的sqlSELECT t.id AS id, t.name AS name, t5.type AS third_card_type, t5.code AS third_card_code, t6.name AS third_card_bank_name FROM t_sys_user t LEFT JOIN ( SELECT t3.id, t3.uid, t3.code, t3.type, t3.bank_id , t3.open_time, ROW_NUMBER() OVER (PARTITION BY t3.uid ORDER BY t3.open_time ASC) AS __row__ FROM t_bank_card t3 ) t5 ON t5.uid t.id AND t5.__row__ 4 INNER JOIN t_bank t6 ON t6.id t5.bank_id WHERE ( SELECT COUNT(*) FROM t_bank_card t1 WHERE t1.uid t.id AND t1.type 储蓄卡 ) 4 AND NOT EXISTS ( SELECT 1 FROM t_bank_card t2 WHERE t2.uid t.id AND t2.type 信用卡 LIMIT 1 )什么你看不懂sql没关系直接丢给ai让他帮我们看看看来ai还是很懂sql的嘛聪明的肯定又发现了盲点你这边生成了两个子查询sql导致整体sql性能偏弱是否有好的解决方案呢隐式groupeq提供了子查询合并我们又叫他groupJoin或者隐式group那么应该怎么做呢基本上什么代码都不需要动只需要加一行配置即可ListUserDTO2 list easyEntityQuery.queryable(SysUser.class) //增加这行配置 .configure(s - s.getBehavior().add(EasyBehavi

相关新闻

Spring 事务实现方式有哪些?

Spring 事务实现方式有哪些?

编程式事务:通过编程的方式管理事务,这种方式带来了很大的灵活性,但很难维护。声明式事务:将事务管理代码从业务方法中分离出来,通过aop进行封装。Spring声明式事务使得我们无需要去处理获得连接、关闭连接、事务提交和…

2026/7/1 1:46:56阅读更多 →
大模型核心技术与企业级应用实战指南-附录

大模型核心技术与企业级应用实战指南-附录

附录 这部分是整本书的"工具箱"——遇到不熟悉的概念回来查,看到感兴趣的工具体验一下,想深入研究的照着参考文献去找原文读。 附录A:常用术语表 按字母顺序排列,方便快速查阅。 A Adam — 一种自适应学习率的优化算法…

2026/7/1 1:46:56阅读更多 →
go ethereum之p2p

go ethereum之p2p

简介 p2p是以太坊节点网络层的骨架,夹在底层 TCP/UDP 和应用协议(eth、snap、les)之间,管三件事:节点发现(谁在线)、连接管理(怎么连上、怎么断)、消息多路复用&#xff…

2026/7/1 1:46:56阅读更多 →
Windows 11本地部署GLM-5.2大模型:集成Claw工具调用与Agent知识库实战

Windows 11本地部署GLM-5.2大模型:集成Claw工具调用与Agent知识库实战

最近在尝试本地部署大语言模型时,发现很多教程都要求使用Linux系统,或者配置过程极其复杂,劝退了不少想在Windows上体验的开发者。特别是对于智谱GLM-5.2这样性能强劲的模型,以及像Claw、Agent知识库这类前沿应用,很多…

2026/7/1 2:47:04阅读更多 →
效率够高吗?8款AI论文网站排行榜,毕业季救星!

效率够高吗?8款AI论文网站排行榜,毕业季救星!

论文写到一半卡壳?文献找了一堆却无从下手?格式调整反复修改,查重结果还总不理想? 别担心!AI论文工具正在成为高校学生的高效帮手。本文将基于学术严谨性、资料检索能力、格式自动生成和查重优化效果四大维度&#xf…

2026/7/1 2:47:04阅读更多 →
写论文如何又快又好?资深导师力荐这几个AI写作辅助网站

写论文如何又快又好?资深导师力荐这几个AI写作辅助网站

写论文又快又好,关键在于用对 AI 工具、走对流程——资深教授普遍推荐:千笔AI(中文全流程首选) 豆包学术版(轻量高效) DeepSeek 学术版(理工 / 长文本) Grammarly Academic&#xff…

2026/7/1 2:47:04阅读更多 →
【精通】RustMark v2.5:国际化与无障碍 — Unicode/ICU4X/AccessKit 实战

【精通】RustMark v2.5:国际化与无障碍 — Unicode/ICU4X/AccessKit 实战

【精通】RustMark v2.5:国际化与无障碍 — Unicode/ICU4X/AccessKit 实战 目录 前言 技术背景与演进逻辑 1.1 国际化与无障碍:被忽视的工程基础设施 1.2 从"事后翻译"到"架构内建"的范式迁移 1.3 传统方案的三大崩塌点 1.4 RustMark v2.5 的国际化与无障…

2026/7/1 2:47:04阅读更多 →
从零构建AI工作流与智能体:以视频摘要生成为例的实践指南

从零构建AI工作流与智能体:以视频摘要生成为例的实践指南

在实际 AI 项目开发中,我们常常面临一个困境:单个 AI 模型或工具能力有限,而复杂的业务需求往往需要串联多个步骤,例如从文本生成视频脚本,再生成语音,最后剪辑成片。这个过程如果手动操作,不仅…

2026/7/1 2:47:04阅读更多 →
Java毕设选题推荐:基于 SpringBoot 的农户农产品展销助农平台的设计与实现 基于 SpringBoot 的智慧农商便民服务平台【附源码、mysql、文档、调试+代码讲解+全bao等】

Java毕设选题推荐:基于 SpringBoot 的农户农产品展销助农平台的设计与实现 基于 SpringBoot 的智慧农商便民服务平台【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/1 2:42:04阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/6/30 4:03:30阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/6/30 4:36:27阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/1 0:01:44阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/1 0:01:44阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/1 0:01:44阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/1 0:01:44阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/1 0:01:44阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/1 0:01:44阅读更多 →