Files
sodalive-backend-spring-boot/docs/20260305_관리자정산콘텐츠크리에이터별조회SQL오류수정.md

1.8 KiB

관리자 정산 콘텐츠 크리에이터별 조회 SQL 오류 수정 작업 계획

  • /admin/calculate/content-by-creator 호출 경로(Controller/Service/Repository)와 SQL 생성 지점을 확인한다.
  • ONLY_FULL_GROUP_BY 위반 원인(content_settlement_ratio 비집계 컬럼)을 제거하는 최소 수정안을 적용한다.
  • 수정된 쿼리가 기존 응답 스키마/정산 계산 로직과 호환되는지 코드 레벨로 검증한다.
  • lsp_diagnostics, 관련 테스트, 빌드를 실행해 정상 동작을 검증한다.

검증 기록

1차 수정

  • 무엇을: AdminCalculateQueryRepository#getCalculateContentByCreatorgroupBymember.id에서 member.id, creatorSettlementRatio.contentSettlementRatio로 수정해 SELECT의 비집계 컬럼(contentSettlementRatio)이 GROUP BY에 포함되도록 변경했다.
  • 왜: /admin/calculate/content-by-creator 조회 시 creator_settlement_ratio.content_settlement_ratio가 SELECT 절에 존재하지만 GROUP BY에 없어 MySQL ONLY_FULL_GROUP_BY 모드에서 SQLSyntaxErrorException이 발생했기 때문이다.
  • 어떻게:
    • 경로/원인 확인: AdminCalculateController#getCalculateContentByCreator -> AdminCalculateService#getCalculateContentByCreator -> AdminCalculateQueryRepository#getCalculateContentByCreator 호출 체인을 확인했다.
    • 코드 수정: src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/AdminCalculateQueryRepository.kt의 콘텐츠 크리에이터별 조회 쿼리 groupBy를 보완했다.
    • 검증 실행 결과:
      • lsp_diagnostics (AdminCalculateQueryRepository.kt) -> Kotlin LSP 미설정으로 진단 불가
      • ./gradlew test -> 성공
      • ./gradlew build -x test -> 성공
      • ./gradlew tasks --all -> 성공