From 799243b0a835f40e0ffa5f7af71a747f30387ace Mon Sep 17 00:00:00 2001 From: windyboy Date: Sat, 12 Sep 2026 20:56:41 +0800 Subject: [PATCH] fix(ingress): diagnose missing shared mailbox generated key MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 共享信箱 insertRaw 取不到 CMINMSGS_ID 时抛出可诊断错误,指明该列必须由库方生成(C-14、Q7);只改适配代码,不动共享 Schema。 --- .../jdbc/JdbcCminmsgInboxRepository.kt | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/main/kotlin/com/gzzn/omms/msgexchange/infra/persistence/jdbc/JdbcCminmsgInboxRepository.kt b/src/main/kotlin/com/gzzn/omms/msgexchange/infra/persistence/jdbc/JdbcCminmsgInboxRepository.kt index fbbfc1c..a5a027f 100644 --- a/src/main/kotlin/com/gzzn/omms/msgexchange/infra/persistence/jdbc/JdbcCminmsgInboxRepository.kt +++ b/src/main/kotlin/com/gzzn/omms/msgexchange/infra/persistence/jdbc/JdbcCminmsgInboxRepository.kt @@ -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? =