fix(external-rest-api): WHERE ID = #{id} 에 ::varchar 캐스팅 추가

외부 커넥션 관리에서 연결 테스트 시 500 발생.
원인: 운영 DB 의 external_rest_api_connections.id 가 V001 legacy 마이그레이션으로
character varying 인데 mapper 의 WHERE ID = #{id} 가 controller 의 int id 를
그대로 받아 PgJDBC 가 보내는 BIND 가 정수.
PostgreSQL 이 "operator does not exist: character varying = integer" 거부 →
SQLException → ApiResponse 500 ("서버 내부 오류").

수정: 4곳 모두 #{id}::varchar 캐스팅 추가.
  - getExternalRestApiConnectionInfo (SELECT)
  - updateExternalRestApiConnection (UPDATE)
  - deleteExternalRestApiConnection (DELETE)
  - updateExternalRestApiConnectionTestResult (UPDATE)

배치 작업의 batch_config_id 패턴과 동일. 같은 V001 영향을 받은 다른 mapper
(externalDbConnection.xml / externalCallConfig.xml / booking.xml / delivery.xml /
multiConnection.xml / taxInvoice.xml 등) 도 같은 수정이 필요할 가능성 — 별도 작업으로 분리.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
hjjeong
2026-05-13 14:25:17 +09:00
parent d8f606ab00
commit 47eed68072
@@ -69,7 +69,7 @@
SELECT
<include refid="selectColumns"/>
FROM EXTERNAL_REST_API_CONNECTIONS E
WHERE E.ID = #{id}
WHERE E.ID = #{id}::varchar
<include refid="common.companyCodeFilter"/>
</select>
@@ -133,14 +133,14 @@
<if test="save_to_history != null">SAVE_TO_HISTORY = #{save_to_history},</if>
<if test="updated_by != null">UPDATED_BY = #{updated_by},</if>
</set>
WHERE ID = #{id}
WHERE ID = #{id}::varchar
<include refid="common.companyCodeFilter"/>
</update>
<!-- 연결 삭제 -->
<delete id="deleteExternalRestApiConnection" parameterType="map">
DELETE FROM EXTERNAL_REST_API_CONNECTIONS
WHERE ID = #{id}
WHERE ID = #{id}::varchar
<include refid="common.companyCodeFilter"/>
</delete>
@@ -151,7 +151,7 @@
LAST_TEST_DATE = NOW()
, LAST_TEST_RESULT = #{last_test_result}
, LAST_TEST_MESSAGE = #{last_test_message}
WHERE ID = #{id}
WHERE ID = #{id}::varchar
</update>
<!-- DB 토큰 조회 (db-token auth type) -->