-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or request
Description
문제
일부 DAO 메서드에서 SQL ID가 추출되지 않음
// ✅ 추적됨
selectOne("bookFinder.getBookFinderInfo", param);
// ❌ 추적 안 됨
getSqlSession().selectOne("bookFinder.xxx", param);원인
extractSqlId()가 특정 메서드명만 인식하고, 문자열 리터럴만 추출
// JavaSourceParser.java
List<String> sqlMethods = List.of("selectOne", "selectList", ...);
if (firstArg instanceof StringLiteralExpr) { ... } // 변수면 스킵해결 방안: XML 기반 역매칭
-
XmlParser에getAllSqlIds()메서드 추가 - 모든 namespace.id 수집 -
FlowAnalyzer.analyze()시작 시 SQL ID Set 미리 수집 -
extractSqlId()개선 - 메서드 내 모든 문자열 리터럴 검사 - 문자열이 SQL ID Set에 존재하면 매칭 (메서드명 무관)
장점
- 메서드 체이닝
getSqlSession().selectOne(...)자동 지원 - 하드코딩된 메서드명 목록 제거
- XML에 존재하는 SQL만 매칭 (오탐 감소)
관련 파일
src/main/java/com/codeflow/parser/JavaSourceParser.javasrc/main/java/com/codeflow/parser/XmlParser.java
참고
- 상세 분석:
docs/ISSUES.mdIssue [Bug] @RequestMapping의 method 속성이 파싱되지 않음 #33
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request