inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 DB 2편 - 데이터 접근 활용 기술

MyBatis 기능 정리2 - 기타 기능

ResultMap은 굳이 사용 안해도 되는것 아닌가요?

해결된 질문

466

양치잘하기

작성한 질문수 67

0

마이바티스 강의 섹션 초반에 application.properties

Mybatis.configuration.map-underscore-to-camel-case=true

를 해주었기 때문에 컬럼명 변환을 위한 맵은 해주지 않아도 되는것 아닌가요?

추가적인 질문으로 영한님 강의의 로드맵중에 jpa를 집중적으로 강의해주시는 로드맵이 있는데 해당 스프링 로드맵만 수강한 상태에서 개인 프로젝트를 진행할 때 jpa의 지식이 부족할 수 있으니(jpa는 내용이 방대하여 많은 공부가 필요하다고 하셔서) 마이 바티스로 프로젝트를 진행후 jpa로드맵 까지 수강 후 jpa로 프로젝트를 하는게 더 좋은가요?

spring mvc jpa querydsl spring-data-mybatis spring-jpa

답변 1

0

y2gcoder

안녕하세요. 양치잘하기님, 공식 서포터즈 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

y2gcoder

말씀해주신 링크에 답변 아닌 답변을 달아놓았습니다!
제가 잘 모르는 문제라 다른 서포터즈 분들도 보실 수 있도록 계속 열어두었으니 조금만 더 기다려주시면 감사하겠습니다!

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