動作
Bug #1322
進行中[Bug] `Sequence not found: s_user` 重複性噪音(每日 9 次)
開始日期:
2026-06-10
完成日期:
預估工時:
概述
問題¶
近 7 天 log 統計每日 5~17 次 Sequence not found: s_user ERROR。發生在 com.crazysundiet.hm.schedule 等流程對 User entity 寫入時。
根因¶
User.id 用 @PrefixDateSequence(prefix="H", padSize=5, pattern="yyyyMM"),generator 內部 IdGeneratorUtil.nextIdFromSequence(session, "s_user") 會 try SELECT s_user.NEXTVAL,MySQL 沒 native sequence 拋例外,generator 的 catch 區塊 fallback 用 maxId + 1,功能仍正確(H20250900260 等 ID 仍正常產生),但 log 噪音讓人誤判嚴重性。
證據¶
2026-06-09 14:46:11.904 ERROR ... Sequence not found: s_user
2026-06-09 14:46:11.905 INFO ... 成功更新/新增 user ... (id=H...)
(例:H20250900260 是 2025-09 註冊的 user,ID 正常)
建議修法(最小變動)¶
INSERT INTO hibernate_sequence (sequence_name, next_val) VALUES ('s_user', 1)
ON DUPLICATE KEY UPDATE next_val = next_val;
即可消音。
根本修法(optional)¶
改 sylksoft framework 的 IdGeneratorUtil.nextIdFromSequence 直接對 hibernate_sequence table 做 UPDATE ... next_val = next_val + 1 而非 SELECT {table}.NEXTVAL — 屬 framework 端改動,需追上游 issue。
範圍¶
-
java/src/main/java/com/sylksoft/ss3a/model/generator/PrefixDateSequenceIdGenerator.java(framework)
沒有任何資料可供顯示
動作