專案

一般

配置概況

動作

Bug #1322

進行中

[Bug] `Sequence not found: s_user` 重複性噪音(每日 9 次)

是由 陳國瑋約 2 個月 前加入.

狀態:
New
優先權:
Urgent
被分派者:
開始日期:
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)

沒有任何資料可供顯示

動作

匯出至 Atom PDF