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를 사용하려고한다).
응용 프로그램의 데이터 액세스 계층을 구현하는 것은 꽤 번거로 웠습니다. 상용구 코드를 너무 많이 작성해야했습니다. 도메인 클래스는 빈혈이었고 실제 객체 지향 또는 도메인 기반 방식으로 설계되지 않았습니다.
이 두 가지 기술을 모두 사용하면 개발자가 풍부한 도메인 모델의 지속성과 관련하여 훨씬 쉽게 생활 할 수 있습니다. 그럼에도 불구하고 리포지토리를 구현하는 상용구 코드의 양은 특히 여전히 높습니다. 따라서 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 프레임 워크입니다.
이 맥락에서 지속성은 세 가지 영역을 다룹니다.
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
'IT' 카테고리의 다른 글
JavaScript MVC (마이크로) 프레임 워크가 있습니까? (0) | 2020.06.28 |
---|---|
ssh를 극복하는 적절한 방법 (0) | 2020.06.28 |
본문 또는 HTML 헤드에 스크립트를 작성해야합니까? (0) | 2020.06.27 |
Android 용 XML 속성의 물음표 (?) (0) | 2020.06.27 |
클래스 유형을 함수 매개 변수로 전달하는 방법 (0) | 2020.06.27 |