diff --git a/src/main/java/egovframework/config/DataSourceProxyConfig.java b/src/main/java/egovframework/config/DataSourceProxyConfig.java index 9ea5c52..a870645 100644 --- a/src/main/java/egovframework/config/DataSourceProxyConfig.java +++ b/src/main/java/egovframework/config/DataSourceProxyConfig.java @@ -22,6 +22,7 @@ import net.ttddyy.dsproxy.listener.logging.SLF4JLogLevel; import net.ttddyy.dsproxy.listener.logging.SLF4JQueryLoggingListener; import net.ttddyy.dsproxy.proxy.ParameterSetOperation; import net.ttddyy.dsproxy.support.ProxyDataSourceBuilder; +import org.apache.ibatis.jdbc.SQL; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -344,14 +345,19 @@ public class DataSourceProxyConfig { } /** - * jsqlparser를 사용하여 SQL을 보기 좋게 포맷팅합니다. - * SELECT 구문은 AST(Abstract Syntax Tree)를 기반으로 재구성하여 복잡한 쿼리의 가독성을 높입니다. - * CASE, JOIN, 서브쿼리 등 복잡한 구문을 효과적으로 처리합니다. + * SQL을 보기 좋게 포맷팅합니다. + * 주석(/ * * /)을 원래 위치에 보존하면서 포맷팅합니다. * * @param sql 포맷팅할 SQL 문자열 * @return 포맷팅된 SQL 문자열 */ private String formatSql(String sql) { + // 주석이 포함된 경우 원본 SQL을 그대로 반환 (주석 위치 보존) + if (sql.contains("/*")) { + return sql; + } + + // 주석이 없는 경우에만 jsqlparser로 포맷팅 try { Statement statement = CCJSqlParserUtil.parse(sql);