저 밑에 글에서 누가 물어보길래 리플로 달려다가 글이 길어질 것 같아서.


mybatis 를 사용하는 이유는 딱 하나임. 쿼리를 직접 짤 수 있어서.


이게 여러 상황에서 도움이 되는데,


예를 들어서 이미 만들어져 있는 테이블을 사용해야 하는데 이 테이블 스키마가 이상해서 ORM 이랑은 잘 안붙는 케이스가 있음

ORM 을 편하게 쓰려면 이미 테이블 스키마 자체가 ORM 으로 잘 녹일 수 있게 되어있어야 되는데 그게 안되는 레거시 테이블들


그게 아니더라도 레거시 테이블에 대한 복잡한 쿼리같은 것들이 이미 만들어져 있는 경우도 있음

이걸 JPA 로 짜려면 있는 쿼리 그대로 못쓰고 jpa 코드로 한번 변환해야 되는데 이것도 일인데 그렇다고 sql 쿼리가 그대로 나온다고 보장도 안됨


그리고 DB 전용 함수를 사용해야 되는 케이스도 있고.

JPA 로 짜면 무조건 ansi sql 로 나오잖아. 


복잡한 쿼리의 성능이 중요한 경우에도 jpa 대신 mybatis 이용해서 직접 쿼리 짜는게 더 나은 경우들이 있음

jpa 가 그냥 코드로 쓰기는 편한데 sql 이 상황에 따라서 어떻게 생성될 지 모르는 경우들이 있어서.