Fix Oracle uppercase column keys: return lowercase in all API responses

- Add LowerCaseKeyAdvice (ResponseBodyAdvice) to auto-convert Map keys
- Add LowerCaseJdbcTemplate with overridden getColumnMapRowMapper
- Update all repository/service code to use lowercase key access
- Add lowerKeys utility to JsonUtil

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
joungmin
2026-03-09 20:38:43 +09:00
parent a844fd44cc
commit 91d0ad4598
11 changed files with 159 additions and 51 deletions

View File

@@ -30,14 +30,14 @@ public class DaemonController {
if (rows.isEmpty()) return Map.of();
var row = rows.getFirst();
var result = new LinkedHashMap<String, Object>();
result.put("scan_enabled", toInt(row.get("SCAN_ENABLED")) == 1);
result.put("scan_interval_min", row.get("SCAN_INTERVAL_MIN"));
result.put("process_enabled", toInt(row.get("PROCESS_ENABLED")) == 1);
result.put("process_interval_min", row.get("PROCESS_INTERVAL_MIN"));
result.put("process_limit", row.get("PROCESS_LIMIT"));
result.put("last_scan_at", row.get("LAST_SCAN_AT") != null ? row.get("LAST_SCAN_AT").toString() : null);
result.put("last_process_at", row.get("LAST_PROCESS_AT") != null ? row.get("LAST_PROCESS_AT").toString() : null);
result.put("updated_at", row.get("UPDATED_AT") != null ? row.get("UPDATED_AT").toString() : null);
result.put("scan_enabled", toInt(row.get("scan_enabled")) == 1);
result.put("scan_interval_min", row.get("scan_interval_min"));
result.put("process_enabled", toInt(row.get("process_enabled")) == 1);
result.put("process_interval_min", row.get("process_interval_min"));
result.put("process_limit", row.get("process_limit"));
result.put("last_scan_at", row.get("last_scan_at") != null ? row.get("last_scan_at").toString() : null);
result.put("last_process_at", row.get("last_process_at") != null ? row.get("last_process_at").toString() : null);
result.put("updated_at", row.get("updated_at") != null ? row.get("updated_at").toString() : null);
return result;
}