ResultMap은 굳이 사용 안해도 되는것 아닌가요?
마이바티스 강의 섹션 초반에 application.properties에
Mybatis.configuration.map-underscore-to-camel-case=true
를 해주었기 때문에 컬럼명 변환을 위한 맵은 해주지 않아도 되는것 아닌가요?
추가적인 질문으로 영한님 강의의 로드맵중에 jpa를 집중적으로 강의해주시는 로드맵이 있는데 해당 스프링 로드맵만 수강한 상태에서 개인 프로젝트를 진행할 때 jpa의 지식이 부족할 수 있으니(jpa는 내용이 방대하여 많은 공부가 필요하다고 하셔서) 마이 바티스로 프로젝트를 진행후 jpa로드맵 까지 수강 후 jpa로 프로젝트를 하는게 더 좋은가요?
답변 1
0
안녕하세요. 양치잘하기님, 공식 서포터즈 y2gcoder입니다.
말씀하셨던
Mybatis.configuration.map-underscore-to-camel-case=true는 초반부 설명에도 적혀있듯이 네이밍 전략의 불일치를 해결하기 위해 적용해주는 것입니다.
DB Table의 컬럼은 snake_case , 자바 객체 필드는 camelCase 로 이름짓는 것이 관례이기 때문에, 이를 해소하기 위한 방법으로 위의 설정을 추가해주는 것입니다.
Result Maps는 위의 설정만으로는 해결할 수 없을 경우에 사용할 수 있습니다! 예제를 보시면 테이블 컬럼명은 user_id지만, 객체의 id 필드로 매핑해줘야 하는 경우와 같이 아예 필드명이 다른 경우에 사용할 수 있습니다. (여담이지만 이런 경우가 실무에서는 의외로 많습니다)
그리고 추가적인 질문에 대해서는 개인적인 생각이니 참고정도만 해주시면 좋을 것 같습니다! 말씀하신 것과 같이 JPA 자체가 또하나의 로드맵으로 있을만큼 내용이 방대합니다
또한 JPA를 공부하기 위해서는 DB 관련 지식이 필요하다고 생각합니다. 저는 개인적으로 가능하다면
1) DB 에 대해 좀 더 학습하신 뒤에 JdbcTemplate 를 사용해서 프로젝트를 만들어보신 후에 JPA 로드맵을 수강하시면서 해당 프로젝트를 JPA로 바꿔보시거나 2) 시간이 부족하시다면 DB 공부만 하신 뒤에 JPA 로드맵을 수강하시면서 JPA로 바로 프로젝트를 진행해보시는 것
을 추천합니다.
여기서 DB 관련 지식은 SQL 이나 인덱스 등의 DB 관련 지식을 말합니다! Mybatis를 가볍게나마 실무에서 사용해봤던 경험으로는 SQL을 어느 정도 공부하면 Mybatis는 쉽게 사용할 수 있었습니다. 결국 SQL Mapper기 때문에 그걸 사용하기 위한 기본기가 있으면 쉽게 배울 수 있었습니다
감사합니다.
1
답변 감사합니다. 혹시 https://www.inflearn.com/questions/1266373/%EB%B9%88%EC%9D%84-%EC%B0%BE%EC%9D%84%EC%88%98-%EC%97%86%EB%8B%A4%EB%8A%94-%EC%98%A4%EB%A5%98%EA%B0%80-%EB%9C%A8%EB%8A%94%EB%8D%B0-%EB%91%98%EB%9F%AC%EB%B4%90%EB%8F%84-%EB%B9%88%EC%9D%B4-%EC%9E%98-%EB%93%B1%EB%A1%9D%EB%90%9C%EA%B1%B0-%EA%B0%99%EC%9D%80%EB%8D%B0-%EC%8B%A4%ED%96%89%EC%9D%B4-%EC%95%88%EB%90%A9%EB%8B%88%EB%8B%A4
이 질문에 대하여 답변도 해주실 수 있나요 강의자료에서 마이바티스 버전을 3.0.3을 사용하라고 되어있어서 첫 사용할때는 빈 등록이 잘 되었는데 다음날 어떤 오류 발생 후 다시 연결하려니 3.0.3 버전을 등록을 못하는데 특별한 이유가 있나요?
1
말씀해주신 링크에 답변 아닌 답변을 달아놓았습니다!
제가 잘 모르는 문제라 다른 서포터즈 분들도 보실 수 있도록 계속 열어두었으니 조금만 더 기다려주시면 감사하겠습니다!
RepositoryTest의 패키지 위치가 domain인 이유
0
29
2
REQUIRES_NEW 해결 방법에 대해서 질문있습니다!!
0
29
1
update()에 사용하는 setter 질문드립니다.
0
47
1
SQL 중심적 개발의 문제점에 대한 질문
0
72
1
혹시 Containing 을 안쓰신 이유가 있을까요?
0
83
2
[공유] 스프링부트 4.x 버전 mybatis 연동
0
173
1
@repository 어노테이션
0
89
3
ItemService
0
58
1
논리 커밋, 물리 커밋 질문드립니다.
0
54
1
내부 트랜잭션 커밋은 필수인가요?
0
57
1
프록시 커넥션 객체를 반환할 때 생성하는건가요?
0
54
1
Transaction readOnly 성능 개선 (김영한님의 대한 감사인사)
2
178
2
JPQL 대신 네이티브 쿼리를 사용해야 하는 경우
0
77
1
@EventListener(ApplicationReadyEvent.class) 관련
0
88
1
트랜잭션 동기화 매니저와 데이터 소스
0
76
1
DB 관련 강의 개설 계획은 없으신건가요?
0
133
2
물리 트랜잭션 과 논리트랜잭션 용어를 맞게 이해한걸까요
0
94
1
스프링 3 버전 이상 rollbackFor 변경된듯요
1
112
1
트랜잭션 전파 질문.
0
87
1
프로젝트 오픈 에러
0
126
1
외부 트랜잭션에서 isNewTransaction이 false로 나오는거에 대해 질문드립니다
0
83
2
같은 스레드를 사용하면 트랜잭션 동기화 매니저는 같은 커넥션을 반환
0
72
1
h2 인메모리 테스트중 예약어 충돌날 경우 대처방법
0
102
1
커스텀aop와 트랜잭션을 같이 사용할때 우선순위에 관한 질문
0
98
2





