无主之地2配置高吗|看真人裸体BBBBB|秋草莓丝瓜黄瓜榴莲色多多|真人強奷112分钟|精品一卡2卡3卡四卡新区|日本成人深夜苍井空|八十年代动画片

網易首頁 > 網易號 > 正文 申請入駐

告別MyBatis和JPA!Java最強ORM框架來了

0
分享至

Easy Query 不是又一個“幫你少寫 SQL”的小工具,它更像是把 Java 里的復雜查詢、對象關系、分庫分表、讀寫分離都往一套強類型表達式里收。



Java 后端寫數據庫,很多人嘴上說習慣了,手上其實早就煩了。

MyBatis 靈活,但 XML 和手寫 SQL 寫多了,改字段名時心里會咯噔一下。JPA 很對象化,但復雜查詢、動態條件、性能控制一上來,又容易讓人想退回 SQL。

于是項目里經常出現一種混搭:簡單查詢用 ORM,復雜查詢手寫 SQL,報表查詢另開一套,分頁、邏輯刪除、多租戶、分表再補插件。

能跑。也能累。

Easy Query 狠的地方,不是喊“替代 MyBatis/JPA”,而是它敢把復雜 SQL 寫成強類型 Java 表達式:字段能點出來,關系能走出來,join 和子查詢不再全靠字符串硬拼。

最先刺到人的,是強類型查詢

手寫 SQL 最怕什么?不是長,是脆。

字段名改了,XML 里不會哭;表結構動了,字符串不會提醒你;IDE 也很難像檢查 Java 代碼一樣檢查 SQL 片段。

Easy Query 的一個主線,就是把查詢表達式拉回 Java 類型系統里。README 里提到它擁有強類型表達式,并提供代理模式支持 APT 生成代理對象。

@Table("t_blog")
@EntityProxy
public class BlogEntity extends BaseEntity
implements ProxyEntityAvailable {
// fields...
}

有了代理對象后,查詢不再只是字符串拼裝,而是可以寫成鏈式表達式。

Topic topic = easyEntityQuery
.queryable(Topic.class)
.where(o -> o.id.eq("3"))
.firstOr;

這類寫法的爽點很直接:能點出來的字段,就比手寫字符串更讓人安心。尤其是后臺項目跑幾年以后,字段重命名、表拆分、DTO 調整,都是遲早的事。

五大隱式,才是它最炸的地方

官方 README 開頭就把“五大隱式”擺出來了:隱式 join、隱式子查詢、隱式分組、隱式分區分組、隱式 CASE WHEN 表達式。

這幾個詞看著有點猛,落到代碼里其實很好懂:你按對象關系寫,它幫你把背后的 SQL 關系翻出來。

能力 適合干什么

隱式 join

按關聯對象字段篩選、排序、取結果

隱式子查詢

按一對多、多對多關系做 any、max 等條件

隱式分組

把多個子查詢合并成分組查詢

隱式分區分組

取關聯集合里第一個、第 N 個數據參與篩選

隱式 CASE WHEN

聚合函數加篩選條件

比如查詢“用戶所屬企業是 xx 公司”,代碼不是先手寫 join,再管表別名,再補排序,而是直接沿著關系寫:

List userInXXCompany = entityQuery.queryable(SysUser.class)
.where(user -> {
user.company.name.like("xx公司");
})
.orderBy(user -> {
user.company.registerMoney.desc;
user.birthday.asc;
}).toList;

這段最有意思的地方,是 user.company.name 。你寫的是對象關系,最后走的是數據庫查詢。ORM 如果只是省幾行 CRUD,沒什么稀奇;能把關系查詢寫順,才真有味道。

一對多查詢,不用每次都手寫 exists

后臺系統里,一對多條件太常見了。

查“有小明這個員工的公司”,查“有未付款訂單的用戶”,查“最近一次登錄異常的賬號”。這種需求寫 SQL 不難,但每次都要把 exists、子查詢、聚合塞進去,代碼很快變厚。

Easy Query README 里的隱式子查詢例子是這樣的:

List companies = entityQuery.queryable(Company.class)
.where(company -> {
company.users.any(u -> u.name.like("小明"));
company.users
.where(u -> u.name.like("小明"))
.max(u -> u.birthday)
.gt(LocalDateTime.of(2000, 1, 1, 0, 0, 0));
}).toList;

這就不是“少寫一個 mapper 方法”了。

它是在把復雜查詢的表達力往 Java 對象關系上挪。你還得懂 SQL,但不用把每個關系都拆成字符串來手工拼。

Easy Query 不會讓你不用懂 SQL。恰恰相反,越是復雜查詢,越需要你知道背后會生成什么 SQL。它解決的是另一件事:別把 SQL 的脆弱字符串散得到處都是。

不止查詢,后臺那些老賬它也管

如果 Easy Query 只會 queryable,那它頂多算一個強類型查詢器。

但 README 里列的范圍要大得多:單表查詢、多表查詢、union、子查詢、分頁、動態表名、VO 對象查詢返回、邏輯刪除、全局攔截、數據庫列加密、數據追蹤差異更新、樂觀鎖、多租戶、自動分庫、自動分表、讀寫分離。

這份清單看完,你就知道它不是給 demo 用的。

后臺常見麻煩 Easy Query 文檔/README 提到的能力

軟刪除

@LogicDelete

邏輯刪除

復雜查詢

join、union、子查詢、聚合、分頁

大表拆分

自動分庫、自動分表

多租戶系統

多租戶、全局攔截

讀多寫少

讀寫分離

這里要說句實話:能力多,也意味著你不能隨手就往老項目里懟。

ORM 是數據庫訪問的主干,不是工具類。你要先拿一個模塊驗證查詢風格、生成 SQL、事務邊界、分頁結果和線上排查方式。

國產數據庫和分析庫也沒落下

README 的數據庫支持表里,列了 MySQL、Oracle、PostgreSQL、SqlServer、H2、SQLite、ClickHouse、達夢、人大金倉 KingbaseES、高斯、DuckDB、DB2 等。

這點對現在的企業項目挺現實。

以前只盯 MySQL 還行,現在一進政企、金融、數據平臺,國產數據庫、分析庫、信創環境一上來,ORM 的數據庫適配就不是加分項,而是門檻。

Spring Boot 接入,看起來不繞

README 里給的 Spring Boot 依賴很直接:


com.easy-query
sql-springboot-starter
${easy-query.version}

項目 POM 當前顯示的版本是 3.2.10 ,Gitee releases 頁面能看到 3.1.48 發布記錄。實際接入時,以 Maven Central、項目倉庫和官方文檔里的最新版本為準。

另外,強類型代理相關能力需要實體對象添加 @EntityProxy ,再通過 APT 生成代理對象。這個步驟要讓團隊熟悉,不然新人第一次看到 BlogEntityProxy 會愣一下。

別急著喊替代,先看你是哪種項目

如果你現在的系統就是幾十張表、CRUD 很直、團隊 MyBatis 用得順,Easy Query 不一定非上不可。

但如果你已經開始遇到這些情況,我會認真試一把:

復雜篩選越寫越長;join 和子查詢散在一堆 XML 里;字段重構很怕漏;多租戶、邏輯刪除、讀寫分離要統一收口;還要兼顧分庫分表或國產數據庫。

這時 Easy Query 的強類型表達式和對象關系查詢,就不是花活了。

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
郵報:門迪現月薪1萬英鎊,在波蘭低調生活

郵報:門迪現月薪1萬英鎊,在波蘭低調生活

懂球帝
2026-05-30 18:44:23
日媒:高市正準備對華發動戰爭?日專家“重兵部署,戰場選好了”

日媒:高市正準備對華發動戰爭?日專家“重兵部署,戰場選好了”

二爺臺球解說
2026-05-30 12:54:57
永別了,“千面如來”劉洵,他真的是一位好演員!

永別了,“千面如來”劉洵,他真的是一位好演員!

新民周刊
2026-05-30 14:28:40
法網女單太亂了:隨著姆博科1-2出局,世界前十已有6將被送回家

法網女單太亂了:隨著姆博科1-2出局,世界前十已有6將被送回家

側身凌空斬
2026-05-31 03:56:40
為什么人類會想到要遮擋生殖器?

為什么人類會想到要遮擋生殖器?

宇宙時空
2026-05-29 17:30:16
外網看傻眼!536萬畝麥田告急,中國救援刷屏:糧食是命,不能丟

外網看傻眼!536萬畝麥田告急,中國救援刷屏:糧食是命,不能丟

黑鷹觀軍事
2026-05-29 15:15:34
2000億龍頭遭高管集體減持,理由是為孩子教育,董事長套現4.2億元

2000億龍頭遭高管集體減持,理由是為孩子教育,董事長套現4.2億元

21世紀經濟報道
2026-05-30 23:04:07
廣東一女教師被6次投訴后續,家長今日再要求撤訴被拒絕

廣東一女教師被6次投訴后續,家長今日再要求撤訴被拒絕

侃故事的阿慶
2026-05-31 03:32:44
著名球星、英格蘭前國腳被捕!

著名球星、英格蘭前國腳被捕!

湖報體育
2026-05-30 16:11:54
炸裂!北京榜一大哥狂砸1700萬,女主播美若天仙,聊天記錄辣眼睛

炸裂!北京榜一大哥狂砸1700萬,女主播美若天仙,聊天記錄辣眼睛

小鋭有話說
2026-05-28 08:27:38
同事一個月請了三次喪假,結果領導說:你家親戚死光了?然后同事就給了領導一耳光!我們上去拉偏架,最后領導被揍的鼻青臉腫,還降職調崗

同事一個月請了三次喪假,結果領導說:你家親戚死光了?然后同事就給了領導一耳光!我們上去拉偏架,最后領導被揍的鼻青臉腫,還降職調崗

大愛三湘
2026-05-28 21:14:00
王思聰基本上不會再回來了。

王思聰基本上不會再回來了。

流蘇晚晴
2026-05-28 18:06:51
9換1!籌碼楊瀚森!美記提議開拓者大交易

9換1!籌碼楊瀚森!美記提議開拓者大交易

籃球實戰寶典
2026-05-30 21:24:38
歐冠決賽兩大爭議判罰!薩卡手球逃點,阿什拉夫鎖喉哈弗茨逃紅

歐冠決賽兩大爭議判罰!薩卡手球逃點,阿什拉夫鎖喉哈弗茨逃紅

奧拜爾
2026-05-31 00:50:22
VOGUE見光死!歐陽娜娜下垂,趙今麥深V開到腰

VOGUE見光死!歐陽娜娜下垂,趙今麥深V開到腰

孤城落日
2026-05-30 14:46:38
南開大學通報論文數據存疑問題

南開大學通報論文數據存疑問題

界面新聞
2026-05-30 19:44:53
名記正式確認,CBA下賽季采取三外援新政!廣東或優先續約奎因

名記正式確認,CBA下賽季采取三外援新政!廣東或優先續約奎因

多特體育說
2026-05-30 23:31:21
郝軍輝任中央組織部副部長

郝軍輝任中央組織部副部長

中國經濟網
2026-05-30 14:23:25
伊朗大內鬼浮出水面?美媒:要不是美以失手,內賈德早已接管伊朗

伊朗大內鬼浮出水面?美媒:要不是美以失手,內賈德早已接管伊朗

健身狂人
2026-05-30 15:23:24
上海大鯊魚將迎來最嚴峻考驗?CBA總決賽第三戰今晚舉行

上海大鯊魚將迎來最嚴峻考驗?CBA總決賽第三戰今晚舉行

上觀新聞
2026-05-31 04:14:15
2026-05-31 06:04:49
呼呼歷史論
呼呼歷史論
分享有趣的歷史
621文章數 17150關注度
往期回顧 全部

科技要聞

車圈大佬發聲:價格戰遠去,但競爭仍殘酷

頭條要聞

兩名9歲女孩被困電梯近2小時 求救幾十次物業無動于衷

頭條要聞

兩名9歲女孩被困電梯近2小時 求救幾十次物業無動于衷

體育要聞

巴黎再度捧起歐冠獎杯 槍手眾將黯然神傷

娛樂要聞

張碧晨《歌手》 “活人微死” 自嘲

財經要聞

雙匯管不住一頭豬

汽車要聞

900V+3.2秒破百 領克10+&領克10上市16.99萬元起

態度原創

教育
時尚
本地
游戲
健康

教育要聞

一“蘋”心態 二“蘋”實力 三“蘋”運氣

美回巔峰的她們,帶火的這些爆款真的好用嗎

本地新聞

用剪紙的方式,打開江蘇揚州

巫師3新DLC跨十年:年輕玩家在初發售時還是小孩!

嘗試干細胞療法如何避免踩坑?

無障礙瀏覽 進入關懷版