저 밑에 글에서 누가 물어보길래 리플로 달려다가 글이 길어질 것 같아서.
mybatis 를 사용하는 이유는 딱 하나임. 쿼리를 직접 짤 수 있어서.
이게 여러 상황에서 도움이 되는데,
예를 들어서 이미 만들어져 있는 테이블을 사용해야 하는데 이 테이블 스키마가 이상해서 ORM 이랑은 잘 안붙는 케이스가 있음
ORM 을 편하게 쓰려면 이미 테이블 스키마 자체가 ORM 으로 잘 녹일 수 있게 되어있어야 되는데 그게 안되는 레거시 테이블들
그게 아니더라도 레거시 테이블에 대한 복잡한 쿼리같은 것들이 이미 만들어져 있는 경우도 있음
이걸 JPA 로 짜려면 있는 쿼리 그대로 못쓰고 jpa 코드로 한번 변환해야 되는데 이것도 일인데 그렇다고 sql 쿼리가 그대로 나온다고 보장도 안됨
그리고 DB 전용 함수를 사용해야 되는 케이스도 있고.
JPA 로 짜면 무조건 ansi sql 로 나오잖아.
복잡한 쿼리의 성능이 중요한 경우에도 jpa 대신 mybatis 이용해서 직접 쿼리 짜는게 더 나은 경우들이 있음
jpa 가 그냥 코드로 쓰기는 편한데 sql 이 상황에 따라서 어떻게 생성될 지 모르는 경우들이 있어서.
감사합니다!
에이 JPA도 그럴때 쓰라고 @QUERY 지원하자나영
ㅇㅇ 맞는데 그런건 다 orm 쓰고 일부만 로우쿼리 쓸 때나 쓰라고 만들어놓은거지. 모든 쿼리를 직접 써야되는데 굳이굳이 jpa 을 붙이는 건 이상하잖아.
그니까 옛날 프로젝트는 레거시로 계속가는거고 신규는 전부 JPA 로함
그리고 JPA도 쿼리튜닝 있음
보통 둘다 쓰지 - dc App
ㅇㅈ 현업에선 마이바티스 주로 씀