fix(ingress): diagnose missing shared mailbox generated key
共享信箱 insertRaw 取不到 CMINMSGS_ID 时抛出可诊断错误,指明该列必须由库方生成(C-14、Q7);只改适配代码,不动共享 Schema。
This commit is contained in:
+17
-7
@@ -26,13 +26,23 @@ class JdbcCminmsgInboxRepository(
|
||||
) : CminmsgInboxRepository {
|
||||
|
||||
override fun insertRaw(rawXml: String): Long =
|
||||
ds.updateReturningLong(
|
||||
"""
|
||||
INSERT INTO cminmsgs (CMINMSGS_CLOB_MSG, CMINMSGS_DATE_RECEIVED, CMINMSGS_DATE_PROCESSED)
|
||||
VALUES (?, CURRENT_TIMESTAMP, NULL)
|
||||
""".trimIndent(),
|
||||
) { ps ->
|
||||
ps.setString(1, rawXml)
|
||||
try {
|
||||
ds.updateReturningLong(
|
||||
"""
|
||||
INSERT INTO cminmsgs (CMINMSGS_CLOB_MSG, CMINMSGS_DATE_RECEIVED, CMINMSGS_DATE_PROCESSED)
|
||||
VALUES (?, CURRENT_TIMESTAMP, NULL)
|
||||
""".trimIndent(),
|
||||
) { 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? =
|
||||
|
||||
Reference in New Issue
Block a user