inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 스프링 데이터 JPA

네이티브 쿼리

mybatis랑 jpa의 차이가 궁금합니다

해결된 질문

1143

ye k

작성한 질문수 11

1

안녕하세요 강사님. 3개월쯤 된 신입 개발자 입니다.

회사에서 myBatis를 사용한 프로젝트를 진행했고, 최근 한가해진 참에 JPA도 배워보고 싶어서 강의를 듣게되었는데 아무리 생각해도 JPA가 주는 CRUD의 장점을 myBatis가 커버할 수가 없을 것 같습니다.

1. 혹시 실무에서 JPA 대신 myBatis를 사용하는 특별한 이유가 있을까요?

2. 두 개를 섞어서 사용(JPA기반 동적쿼리만 myBatis 사용) 하면 좋을거같은데 실제 실무에서 이런 방식으로 사용하는 경우가 있을까요?

java spring-boot JPA spring

답변 1

5

OMG

안녕하세요. ye k님, 공식 서포터즈 OMG입니다.

1. JPA는 쿼리를 직접 만들어준 다는 장점이 있지만, 영속성 컨텍스트 등 복잡한 개념 때문에 러닝커브가 Mybatis에 비해 높습니다. 그렇기 때문에 국내에서는 순수 쿼리만 어느정도 다룰줄 알면 사용하기가 상대적으로 편한 Mybatis를 사용하는 회사가 많은 것으로 알고 있고, 답변을 드리는 저 또한 회사에서 Mybatis를 사용하고 있습니다.

-

2. 동적 쿼리를 편리하게 작성하기 위해 QueryDSL, Mybatis를 사용하는데요, QueryDSL도 결국 jpql 기반이라 jpql에서 지원하지 않는 쿼리는 Mybatis 혹은 JDBC등을 이용하여 쿼리를 짜기도 합니다.

추가적으로 알아두시면 좋을만한 내용(영한님 답변) 링크 첨부합니다.

https://www.inflearn.com/questions/25491

감사합니다.

changeTeam 메서드 질문

0

35

1

existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?

0

87

1

existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?

0

129

3

MemberRepository 구현체

0

72

1

pdf 표현 질문드립니다.

0

78

1

로그가 남지 않는 문제.

0

98

1

테스트 라이브러리가 강의는 junit4가 맞나요??

0

78

2

pdf 파일과 차이점이 있는 것같은데 문제 없나요?

0

75

2

@PrePersist, @PreUpdate 호출 시점 질문드립니다.

0

102

2

Sort 인터페이스는 잘 사용 안하나요?

0

59

1

스캔대상 질문드립니다.

0

48

1

하이버네이트6에서의 최적화에 이은 질문

0

92

1

save() vs saveAndFlush DB 통신 횟수

0

58

1

순수 JPA 리포지토리 코드 수정부분

0

92

2

bulk연산 후 flush하는 이유를 모르겠어요

0

163

3

bulk insert 질문입니다.

0

191

2

교만했던 것 같아요.

0

152

1

RESTful 강의는 안하시는 건지 궁금합니다.

0

154

2

동적 테이블에 대한 질문

0

89

1

영속성 전이와 연관관계

0

141

2

강의 10:25 질문

0

79

1

단건 update 질문

0

104

2

엔티티 와 도메인의 경계

0

129

1

UsernameOnlyDto 타입 type mismatch 오류

0

123

1