반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 쓰기지연sql저장소 쿼리실행순서
- Oracle
- sql사이트
- Java
- Stream
- intellij 플러그인 만들기
- 쿼리테스트사이트
- dto매핑우선순위
- Flush
- intellij 플러그인 개발
- port&adapter architecture
- 쿼리실행순서
- Kafka
- 중복컬럼dto매핑
- IntelliJ
- 쿼리실행사이트
- group by group by rollup 차이
- 오라클쿼리테스트사이트
- error 2002 (hy000): can't connect to local mysql server through socket '/tmp/mysql.sock' (2)
- 쓰기지연저장소
- ls -lgaf
- 컬럼명중복
- hibernate 쿼리실행 순서
- 포트앤어댑터 아키텍처
- sql 테스트 사이트
- 스트림
- java 로 intellij 플러그인
- 설치없이쿼리실행
- JPA
- 자바
Archives
- Today
- Total
개린이 탈출기
[MyBatis] 조회 시, 컬럼 명이 중복되도록 조회하는 경우 (alias 사용) 본문
728x90
반응형
SMALL
SELECT CATEGORYID
, CATEGORYNAME
, DESCRIPTION AS CATEGORYNAME
FROM CATEGORIES
WHERE CATEGORYID = 9
만일 다음과 같은 쿼리를 조회했을 때 db 툴은 어떤 모습으로 데이터를 조회 시켜줄까?
alias 를 사용하였기 때문에 db툴을 이용하여 조회했을 땐, 다음과 같은 모습으로 조회된다.
즉, 컬럼명을 동일하게 뽑아서 보여준다.
그렇다면 MyBatis 를 이용하는 경우엔 객체에 컬럼명이 중복되는데, 어떻게 매핑해줄까?
결론부터 말하자면 alias 를 적용하기 전 실제 컬럼명이 더욱 우선순위를 갖게 되는 것 같다.
public class TestDTO {
private String categoryid;
private String categoryname;
}
<select id ="testOfDupCol" resultType="TestDTO">
SELECT CATEGORYID
, CATEGORYNAME
, DESCRIPTION AS CATEGORYNAME
FROM AMISDBA.CATEGORIES
WHERE CATEGORYID = 9
</select>
물론 환경설정, mapping 등의 설정에 따라 다르겠지만,
기본적으로는 기존 컬럼명으로 조회하는 경우, 해당 컬럼의 값이 dto 의 필드에 할당되는 것 같다.
만일 중복되는 컬럼을 없애고 조회하면 데이터가 모두 적절히 들어가는 것을 확인할 수 있었다.
<select id ="testOfDupCol" resultType="TestDTO">
SELECT CATEGORYID
, DESCRIPTION AS CATEGORYNAME
FROM AMISDBA.CATEGORIES
WHERE CATEGORYID = 9
</select>
관련 글들을 찾아보았는데, 나와 비슷한 케이스에서도 마찬가지로 컬럼명이 우선순위를 가졌다.
이렇게 컬럼명이 겹치는 경우, resultMap을 적절히 활용하면 해결할 수 있을 것 같다.
애초에 필드명이 중복되지 않도록 설정하는 것이 더욱 현명하고 논리적으로도 옳은 방식인 것 같다.
참고
[MyBatis] 데이터베이스 컬럼명과 xml에서 매핑한 필드명의 관계에 대하여
마이바티스는 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다.
velog.io
728x90
반응형
LIST
'Database ~ SQL' 카테고리의 다른 글
[QueryDsl] DTO로 결과 반환하기 (Projections) (0) | 2025.04.03 |
---|---|
[ORACLE] GROUP BY 와 ROLLUP 이 헷갈릴 때 (0) | 2025.04.02 |
[SQL] 여러 개의 행을 하나의 데이터로 합치고 싶다면 LISTAGG/GROUP_CONCAT (0) | 2025.03.14 |
쿼리 실행해볼 수 있는 쿼리 SQL 사이트 추천 (0) | 2025.03.14 |
[ORACLE] 접속한 유저와 이름이 다른 스키마로 연결하는 방법 (0) | 2025.01.06 |