fix(ingress): diagnose missing shared mailbox generated key

共享信箱 insertRaw 取不到 CMINMSGS_ID 时抛出可诊断错误,指明该列必须由库方生成(C-14、Q7);只改适配代码,不动共享 Schema。
This commit is contained in:
windyboy
2026-09-12 20:56:41 +08:00
parent 267eb20219
commit 799243b0a8
@@ -26,6 +26,7 @@ class JdbcCminmsgInboxRepository(
) : CminmsgInboxRepository {
override fun insertRaw(rawXml: String): Long =
try {
ds.updateReturningLong(
"""
INSERT INTO cminmsgs (CMINMSGS_CLOB_MSG, CMINMSGS_DATE_RECEIVED, CMINMSGS_DATE_PROCESSED)
@@ -34,6 +35,15 @@ class JdbcCminmsgInboxRepository(
) { ps ->
ps.setString(1, rawXml)
}
} catch (e: IllegalStateException) {
// 只调整适配代码、不碰共享 Schema:把"取不到 generated key"变成可诊断错误,
// 指出这是共享信箱 ID 生成方式的前提(C-14、Q7)。
throw IllegalStateException(
"shared mailbox insert returned no generated CMINMSGS_ID; " +
"the CMINMSGS_ID column must be DB-generated (C-14, Q7)",
e,
)
}
override fun rawOf(msgId: Long): String? =
ds.queryOne(