Mambo
6k
2016-12-19 21:32:34
2
1121

데이터 액세스 기술을 하나만 적용하는 이유에 대해서


인터넷에 보면 많은 예제들이 마이바티스 아니면 JPA로 개별적으로 구성되어있는데, 토비님의 토비 스프링 3.1을 보면 각 트랜잭션 매니저가 PlatformTransactionManger의 구현체이기 때문에 마이바티스, JPA, 하이버네이트에 상관없이 이 구현체에 대한 빈을 가져올 수 있으면 모두 적용할 수 있다는 것과 SQL 쿼리 매퍼 프레임워크인 마이바티스와 JPA를 동시에 사용하여 단순한 CRUD는 JPA의 도움을 받아 처리하고, 복잡한 쿼리 문법은 마이바티스를 통해 작성할 수 있다는 것을 보았습니다. 

그러면, ORM이냐 비 ORM이냐를 구분해서 하나만 사용하는 이유는 무엇일까요? 하이버네이트와 같은 ORM도 쿼리문을 작성할 수 있도록 제공하는 부분 때문인가요?

아니면 다른 이유라도 있나요?


0
  • 답변 2

  • looklazy
    225
    2016-12-20 00:27:05

    말씀하신대로 ORM에서 이미 어느정도 쿼리문에 대해 제공하고 있기 때문이 아닐까요? 

    일단 MyBatis를 쓰는 시점에서 JPA를 사용하는 경우는 정말 드문 케이스일 것 같고, MyBatis를 사용하면서 JPA를 사용하는 케이스는 도메인은 JPA로 관리하면서 일부 통계성 쿼리에 대해 MyBatis를 사용하겠다는 경우일 것 같은데, 간단한 쿼리는 JPQL이나 nativeQuery를 통해 해결할 수 있고 보다 복잡한 쿼리는 대개 아예 별도의 솔루션을 활용하는 경우가 많기 때문에 두 기술을 혼용해서 쓰는 경우가 별로 드물지 않을까 생각됩니다.

  • 커비
    2k
    2016-12-20 10:37:27

    jpa에서 mybatis 처럼 쿼리(jpql말고 네이티브쿼리) 로 가능합니다. 굳이 두개다 쓸필요가 없죠 

  • 로그인을 하시면 답변을 등록할 수 있습니다.