ramisiel
3k
2021-02-26 09:19:20
6
328

JPA의 구현기술에 대해 여쭤볼게 있습니다.


안녕하세요.


프로젝트에서 restFull로 데이터를 받아서 

java단에서 데이터 끼리 병합,정렬 기타등등을 하기 위해서

JPA를 알아보고 있습니다.


잘은 모르겠지만...

JPA가 인터페이스 이고, 해당 구현하는 방법은

EclipseLink, DataNucleus, OpenJPA, TopLink Essentials, QueryDSL

이런식의 방법들이 있다고 하는데...


하이버네이트 말고는 다 처음들어본것들이라...

특정 기술을 잡고 파악하고자 하는데, 

현업에서 많이 쓰고 있는 기술 기준대로 하고자 합니다.


서론이 길었네요... 

선배님.후배님들 구현기술이 뭐가 좋을지 추천 부탁 드립니다.

0
  • 답변 6

  • devcrema
    1k
    2021-02-26 09:23:07

    거의 대부분은 구현체로 hibernate를 사용합니다.

    다만 대부분 특정 구현체에 대해서 쓰지 않고 queryDSL을 통해 JPQL을 쓰거나 spring data를 통해 추상화된 기능을 주로 사용합니다.

    따라서 hibernate를 쓰더라도 설정부분을 제외하고는 특별히 HQL을 공부한다거나 내부 로직을 본다거나 하는일은 거의 없다고 생각하셔도 될 거 같네요.


  • 제타건담
    7k
    2021-02-26 09:26:04

    현업에서도 하이버네이트가 많이 쓰입니다..
    실제 스프링 부트도 JPA 구현체는 하이버네이트를 쓰고 있구요..

    다만 몇몇 구현체들은 거기만의 특성이 있습니다..

    예를 들어 EclipseLink의 경우는 오라클에서 만든 TopLink를 이어 받아서 개발한지라..

    JPA에서 아직 표준이 없는 계층형 쿼리의 경우 오라클에 한해서 JPA로 지원해주는걸로 알고 있습니다..

    그러나 JPA에서 지원하지 않는건 그냥 일반 SQL로 할수 있게끔 해주기 때문에 큰 문제는 없다고 생각하구요..

    개발하기 좋은건 레퍼런스가 많이 있는게 좋은겁니다..

    그런점에서도 하이버네이트 쓰세요..

    그리고 QueryDsl은 JPA의 구현체가 아니라 JPA를 좀더 쉽게 사용할수 있게 해주는 라이브러리입니다..

  • 지붕뚫고높이차
    1k
    2021-02-26 11:07:33

    프로젝트에서 restFull로 데이터를 받아서 

    java단에서 데이터 끼리 병합,정렬 기타등등을 하기 위해서

    JPA를 알아보고 있습니다.

    ----------------------------------------------------------------------------------------

    글을 보면 DBMS 는 필요 없을 것 같은데

    DBMS 없이 JPA 를 사용하려는 건가요?

  • ramisiel
    3k
    2021-02-26 11:18:05

    지붕뚫고높이차

    네  맞습니다. 

    DBMS없이 JPA를 사용하고자 합니다.

    java에서 로직을 쓰면, 소스를 분석하기 불편해서?

    소스를 간결하게 보고 싶어서?

    그래서 하이버네이트 같은 구현체를 요구 하는것 같아요.


  • 지붕뚫고높이차
    1k
    2021-03-28 23:14:44

    오키 알람기능에 문제가 있는지 답글 달린걸 늦게 봤네요.


    JPA 는 말그대로 추상화된 DBMS 기능을 사용하고 동시에 영속성을 보장하는 기술인데

    정렬을 위해 JPA 를 사용하는건 맞지 않는것 같습니다.


    그냥 컬랙션 객체와 자료구조를 사용해서 요구사항을 구현해보세요.


  • ramisiel
    3k
    2021-03-30 12:08:59
  • 로그인을 하시면 답변을 등록할 수 있습니다.