IT

Spring Data-JPA와 JPA : 차이점은 무엇입니까?

lottoking 2020. 6. 27. 10:41
반응형

Spring Data-JPA와 JPA : 차이점은 무엇입니까?


Spring Data-JPA와 JPA의 차이점에 대해 약간 혼란 스럽습니다. 나는 JPA가 널리 사용되는 ORM 기술을 사용하여 관계형 데이터베이스에 Java 객체를 유지하기위한 사양이라는 것을 알고 있습니다. 즉, JPA는 인터페이스 및 기타 ORM 기술을 제공하여 JPA 제공자 (예 : Hibernate)로 알려진 인터페이스를 구현합니다.

이제 Spring Data JPA는 정확히 무엇입니까? Spring Data JPA가 JPA보다 더 많은 기능 (인터페이스)을 추가했지만 여전히 지정되었거나 JPA 제공자입니까?

Spring Data JPA가 리포지토리 (DAO 계층 : 내가 틀리지 않은 경우)를 해결하는 것을 보았습니다. 그래서 'Spring Data JPA + Hibernate'를 사용하거나 'Hibernate'지시 만 사용하는 것이 어떻게 다른가요?


Spring을 보았습니다 .JPA는 리포지토리 (DAO 계층 : 내가 틀리지 않은 경우)를 해결합니다. 그래서 'Spring JPA + Hibernate'를 사용하거나 'Hibernate'를 직접 사용하는 것만 어떻게 다른가?

말했듯이 JPA사양 이지만 Hibernate 는 해당 사양의 특정 구현입니다 (이러한 구현은 일반적으로 공급자 라고합니다 ). Hibernate를 사용하면 필요할 때 다른 옵션으로 전환 할 수있는 자유를 제한하는 공급자에게 자신을 묶는다 (예를 들어, Hibernate는 개발 프로세스를 중단시키는 버그가 있기 때문에 대신 EclipseLink 또는 ObjectDB를 사용하려고한다).

스프링 데이터 인용 JPA 문서 인용 :

응용 프로그램의 데이터 액세스 계층을 구현하는 것은 꽤 번거로 웠습니다. 상용구 코드를 너무 많이 작성해야했습니다. 도메인 클래스는 빈혈이었고 실제 객체 지향 또는 도메인 기반 방식으로 설계되지 않았습니다.

이 두 가지 기술을 모두 사용하면 개발자가 풍부한 도메인 모델의 지속성과 관련하여 훨씬 쉽게 생활 할 수 있습니다. 그럼에도 불구하고 리포지토리를 구현하는 상용구 코드의 양은 특히 여전히 높습니다. 따라서 Spring Data의 저장소 추상화의 목표는 다양한 지속성 저장소에 대한 데이터 액세스 계층을 구현하려는 노력을 줄이는 것입니다.

요약하면 JPA 위에 또 다른 추상화 계층을 추가 하여 스프링 컨텍스트에서 Persistence Layer 를 지원하는 표준 기반 디자인을 정의합니다 . 정의 된 인터페이스 (Spring으로 알려진)는 프레임 워크가 JPA를 사용하여 결과를 처리하는 서비스를 제공합니다. Spring이 프로젝트를 스캔하고 찾는 방법으로 저장소를 정의합니다.

<repositories base-package="com.acme.repositories" />

따라서 컨테이너의 컨텍스트 나 외부에서 사용할 수 있습니다.

Spring, JPA는 정확히 무엇입니까? Spring, JPA는 JPA보다 더 많은 기능 (인터페이스)을 추가했지만 여전히 지정되었거나 JPA 공급자입니까?

Spring Data JPA는 사용자가 정의한 제공자를 사용하여 JPA 스펙을 참조하여 후드에서 지원되는 저장소를 구현하기위한 정의를 제공합니다.


JPA라고도하는 Java Persistence API는 JavaSE (Java Platform, Standard Edition) 및 JavaEE (Java Platform, Enterprise Edition)를 사용하여 애플리케이션에서 관계형 데이터를 관리하는 Java 프레임 워크입니다.

이 맥락에서 지속성은 세 가지 영역을 다룹니다.

  • javax.persistence패키지에 정의 된 API 자체 .

  • JPQL (Java Persistence Query Language).

  • 객체 관계형 메타 데이터.

    여기에 이미지 설명을 입력하십시오

Spring Data JPA는 JPA 기반 리포지토리를보다 쉽게 ​​구현할 수있는 포괄적 인 Spring Data 프로젝트의 일부입니다.

풍모:

  • Spring 및 JPA를 기반으로 리포지토리 구축을위한 정교한 지원
  • QueryDSL 술어 및 유형 안전 JPA 쿼리 지원
  • 도메인 클래스의 투명한 감사
  • 페이지 매김 지원, 동적 쿼리 실행, 사용자 지정 데이터 액세스 코드 통합 기능
  • @Query부트 스트랩 시간 주석 달린 쿼리의 유효성 검사
  • XML 기반 엔터티 매핑 지원
  • 소개를 통한 JavaConfig 기반 저장소 구성 @EnableJpaRepositories

    여기에 이미지 설명을 입력하십시오

참고 URL : https://stackoverflow.com/questions/16148188/spring-data-jpa-versus-jpa-whats-the-difference

반응형