From 89bf2ce30d8f0d8fce12bad760ecad4a40209367 Mon Sep 17 00:00:00 2001 From: zio Date: Sun, 12 Jul 2026 04:06:56 +0900 Subject: [PATCH] =?UTF-8?q?fix(mybatis):=20quote=20camelCase=20SQL=20alias?= =?UTF-8?q?es=20=E2=80=94=20PG=20folds=20unquoted=20identifiers=20to=20low?= =?UTF-8?q?ercase?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PostgreSQL lowercases unquoted aliases (AS userId -> userid), so every Map-returning @Select lost its camelCase keys at runtime: secure login always returned UNAUTHORIZED (passwordHash null), login-slide imageUrl/ sortOrder null, and the new aggregation APIs would have returned 0/null. Quoted 191 aliases across 22 mappers (text blocks verbatim, string literals escaped), matching the proven UserMapper.xml convention. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../kintex/admin/AdminDashboardMapper.java | 12 +++++----- .../kintex/analytics/AnalyticsMapper.java | 6 ++--- .../kintex/catalog/EventCatalogMapper.java | 8 +++---- .../kintex/common/audit/AuditLogMapper.java | 6 ++--- .../kintex/dashboard/DashboardMapper.java | 24 +++++++++---------- .../com/zioinfo/kintex/ops/OpsMapper.java | 2 +- .../security/AccountSecurityMapper.java | 10 ++++---- .../system/commoncode/CommonCodeMapper.java | 8 +++---- .../system/loginslide/LoginSlideMapper.java | 6 ++--- .../kintex/system/menu/MenuMapper.java | 4 ++-- .../kintex/system/role/RoleMapper.java | 4 ++-- .../kintex/system/setting/SettingMapper.java | 8 +++---- .../kintex/system/sysuser/SysUserMapper.java | 10 ++++---- .../kintex/work/meeting/MeetingMapper.java | 20 ++++++++-------- .../kintex/work/message/MessageMapper.java | 12 +++++----- .../kintex/work/notice/NoticeMapper.java | 16 ++++++------- .../work/notification/NotificationMapper.java | 6 ++--- .../kintex/work/opinion/OpinionMapper.java | 16 ++++++------- .../kintex/work/report/ReportMapper.java | 16 ++++++------- .../kintex/work/schedule/ScheduleMapper.java | 24 +++++++++---------- .../kintex/work/search/SearchMapper.java | 2 +- .../kintex/work/worklog/WorklogMapper.java | 16 ++++++------- 22 files changed, 118 insertions(+), 118 deletions(-) diff --git a/src/backend/src/main/java/com/zioinfo/kintex/admin/AdminDashboardMapper.java b/src/backend/src/main/java/com/zioinfo/kintex/admin/AdminDashboardMapper.java index f66b816..0ef7174 100644 --- a/src/backend/src/main/java/com/zioinfo/kintex/admin/AdminDashboardMapper.java +++ b/src/backend/src/main/java/com/zioinfo/kintex/admin/AdminDashboardMapper.java @@ -17,24 +17,24 @@ public interface AdminDashboardMapper { @Select(""" SELECT (SELECT count(*) FROM event - WHERE start_date <= CURRENT_DATE AND end_date >= CURRENT_DATE) AS ongoingEvents, + WHERE start_date <= CURRENT_DATE AND end_date >= CURRENT_DATE) AS "ongoingEvents", (SELECT count(DISTINCT ha.hall_id) FROM hall_assignment ha JOIN event e ON e.id = ha.event_id - WHERE e.start_date <= CURRENT_DATE AND e.end_date >= CURRENT_DATE) AS hallsInUse, - (SELECT count(*) FROM app_user WHERE status = 'ACTIVE') AS activeUsers, + WHERE e.start_date <= CURRENT_DATE AND e.end_date >= CURRENT_DATE) AS "hallsInUse", + (SELECT count(*) FROM app_user WHERE status = 'ACTIVE') AS "activeUsers", (SELECT count(*) FROM company) AS companies, (SELECT count(*) FROM event - WHERE start_date > CURRENT_DATE) AS upcomingEvents + WHERE start_date > CURRENT_DATE) AS "upcomingEvents" """) Map findKpiCounts(); /** 진행 중(라이브) 행사 — 대표 홀·부스 수·홀 수용량. 최대 20건. */ @Select(""" - SELECT e.id AS eventId, + SELECT e.id AS "eventId", e.name, COALESCE(h.label, '') AS hall, e.status, (SELECT count(*) FROM booth b JOIN layout l ON l.id = b.layout_id - WHERE l.event_id = e.id) AS boothCount, + WHERE l.event_id = e.id) AS "boothCount", COALESCE((SELECT sum(h2.booth_capacity) FROM hall_assignment ha2 JOIN hall h2 ON h2.id = ha2.hall_id WHERE ha2.event_id = e.id), 0) AS capacity FROM event e diff --git a/src/backend/src/main/java/com/zioinfo/kintex/analytics/AnalyticsMapper.java b/src/backend/src/main/java/com/zioinfo/kintex/analytics/AnalyticsMapper.java index ae4edba..64eedfe 100644 --- a/src/backend/src/main/java/com/zioinfo/kintex/analytics/AnalyticsMapper.java +++ b/src/backend/src/main/java/com/zioinfo/kintex/analytics/AnalyticsMapper.java @@ -23,8 +23,8 @@ public interface AnalyticsMapper { /** 행사 부스 총 판매면적(㎡)·부스 수. */ @Select(""" - SELECT COALESCE(sum(ST_Area(b.geom)), 0) AS salesArea, - count(*) AS boothCount + SELECT COALESCE(sum(ST_Area(b.geom)), 0) AS "salesArea", + count(*) AS "boothCount" FROM booth b JOIN layout l ON l.id = b.layout_id WHERE l.event_id = #{eventId} """) @@ -34,7 +34,7 @@ public interface AnalyticsMapper { @Select("""