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 {
|
) : CminmsgInboxRepository {
|
||||||
|
|
||||||
override fun insertRaw(rawXml: String): Long =
|
override fun insertRaw(rawXml: String): Long =
|
||||||
ds.updateReturningLong(
|
try {
|
||||||
"""
|
ds.updateReturningLong(
|
||||||
INSERT INTO cminmsgs (CMINMSGS_CLOB_MSG, CMINMSGS_DATE_RECEIVED, CMINMSGS_DATE_PROCESSED)
|
"""
|
||||||
VALUES (?, CURRENT_TIMESTAMP, NULL)
|
INSERT INTO cminmsgs (CMINMSGS_CLOB_MSG, CMINMSGS_DATE_RECEIVED, CMINMSGS_DATE_PROCESSED)
|
||||||
""".trimIndent(),
|
VALUES (?, CURRENT_TIMESTAMP, NULL)
|
||||||
) { ps ->
|
""".trimIndent(),
|
||||||
ps.setString(1, rawXml)
|
) { 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? =
|
override fun rawOf(msgId: Long): String? =
|
||||||
|
|||||||
Reference in New Issue
Block a user