(08-13 mapper에서 select 구문 메소드를 추가하면서)
Q1.
mapper에서 resultmap 어노테이션을 추가하면 해당되는 resultmap의 모든 컬럼을 select절로 치지 않아도, 그 중에 해당되는 컬럼명과 변수를 대응해서 이어주는거야?
GitHub Copilot
네, @ResultMap 어노테이션을 사용하면 해당 매핑된 결과 맵을 사용하여 결과를 매핑할 수 있습니다. 이 경우, SELECT 절에서 모든 컬럼을 명시적으로 나열하지 않아도 됩니다. @ResultMap에 정의된 매핑 정보에 따라 결과가 자동으로 매핑됩니다.
예를 들어, @ResultMap("membersMap")가 members 테이블의 컬럼과 Member 클래스의 필드를 매핑하는 정보를 가지고 있다면, SELECT user_id from members와 같은 쿼리에서도 membersMap에 정의된 매핑 정보에 따라 Member 객체로 결과가 매핑됩니다.
Q2.
예를들어서, resultmap에, id pw email의 3개 컬럼에 대해서 정의를 해두었는데, 내가 그 다음에 어떤 메소드에서 id만 셀렉트를 하려고 해도, resultmap 을 불러와도 되는거야?
GitHub Copilot
네, @ResultMap을 사용하면 해당 매핑 정보에 따라 결과가 매핑됩니다. 예를 들어, ResultMap에 id, pw, email 컬럼이 정의되어 있지만, 특정 메소드에서 id만 선택하려고 할 때도 @ResultMap을 사용할 수 있습니다. 이 경우, ResultMap에 정의된 매핑 정보 중 id 컬럼만 사용됩니다.
예를 들어, 다음과 같이 ResultMap이 정의되어 있다고 가정해봅시다:
그리고 findId 메소드에서 id만 선택하는 경우:
이 경우, ResultMap에 정의된 매핑 정보 중 user_id 컬럼만 사용되어 Member 객체의 id 필드에 매핑됩니다. 나머지 필드는 null로 남게 됩니다.
+ 강사님도 말씀하시길, 정의하고 안쓰는건 문제가 안된다고 함.
없는걸 쓰려고 하면 에러가 나고...
'언어 및 도구들 공부 > Spring' 카테고리의 다른 글
동적 MyBatis 구문, 동적 SQL 구문. (0) | 2024.12.04 |
---|---|
Spring에서 MySQL select 수행하고 db delete 바로 삭제해도 되는 이유 (0) | 2024.11.13 |
Spring MVC 패턴에서 컨트롤러 메서드와 view의 데이터 주고받기 (1) | 2024.11.12 |
MyBatis 동적 sql 구문 (1) | 2024.11.09 |
업로드한 파일의 경로만 있고 사진 원본이 없으면? (1) | 2024.11.08 |