JPA와 Spring Data JPA의 차이점은 무엇입니까?
Spring Data-JPA와 JPA의 차이가 좀 헷갈립니다.JPA에 대해서는 일반적인 ORM 기술을 사용하여 Java 객체를 관계형 데이터베이스에 고정하기 위한 사양으로 알고 있습니다.
즉, JPA는 인터페이스 및 기타 ORM 기술을 제공하고 JPA 프로바이더(예: 휴지 상태)로 알려진 인터페이스를 구현합니다.
Spring Data JPA는 정확히 무엇입니까?
Spring Data JPA는 JPA를 통해 몇 가지 기능(인터페이스)을 추가했지만 여전히 지정되어 있습니까?아니면 JPA 프로바이더이기도 합니까?
Spring Data JPA가 저장소(DAO 계층: 틀리지 않으면)에서 작동하는 것을 보았습니다.그렇다면 'Spring Data JPA + Hibernate'를 사용하는 것과 'Hibernate' 연출만 사용하는 것이 어떻게 다른가요?
봄을 보았습니다만, JPA는 저장소(DAO 레이어: 틀리지 않으면)를 중심으로 작업하고 있습니다.즉, 'Spring JPA + Hibernate'를 사용하는 것과 'Hibernate'를 직접 사용하는 것이 어떻게 다른가?
말씀하신 바와 같이 JPA는 사양이며, 휴지 상태(Hibernate)는 그 사양의 특정 구현입니다(이러한 구현은 보통 프로바이더라고 불립니다).Hibernate를 사용하면 필요에 따라 다른 옵션으로 전환할 수 있는 자유를 제한하는 프로바이더에 자신을 구속할 수 있습니다(예를 들어, Hibernate에는 개발 프로세스를 중단시키는 버그가 있기 때문에 대신 EclipseLink 또는 ObjectDB를 사용해야 합니다).
애플리케이션의 데이터 액세스 레이어를 실장하는 것은 오랫동안 번거로웠습니다.너무 많은 상용 코드를 작성해야 했다.도메인 클래스는 빈약하여 실제 객체 지향 또는 도메인 중심 방식으로 설계되지 않았습니다.
이 두 가지 기술을 모두 사용하면 리치 도메인 모델의 지속성과 관련하여 개발자의 생활이 훨씬 쉬워집니다.그럼에도 불구하고 저장소를 구현하기 위한 보일러 플레이트 코드의 양은 여전히 매우 높습니다.따라서 Spring Data 저장소 추상화의 목표는 다양한 지속성 저장소에 데이터 액세스 계층을 구현하기 위한 노력을 크게 줄이는 것입니다.
요약하자면, JPA 위에 또 다른 추상화 레이어가 추가되어 Spring 컨텍스트에서 지속성 레이어를 지원하는 표준 기반 설계를 정의하는 것입니다.정의된 인터페이스(스프링)는 JPA를 사용하여 프레임워크가 처리하는 서비스를 제공하여 결과를 제공합니다.Spring이 프로젝트를 스캔하여 찾을 수 있는 방법으로 저장소를 정의합니다.
<repositories base-package="com.acme.repositories" />
따라서 컨테이너의 컨텍스트 또는 컨테이너 외부에서 사용할 수 있습니다.
이제 스프링이 정확히 뭐죠, JPA?JPA가 JPA를 통해 기능(인터페이스)을 추가했는데도 JPA 프로바이더로 지정되어 있습니까?아니면 JPA 프로바이더로도 지정되어 있습니까?
Spring Data JPA는 사용자가 정의한 공급자를 사용하여 JPA 사양을 참조하여 후드 아래에서 지원되는 리포지토리를 구현하기 위한 정의를 제공합니다.
Java Persistence API(JPA라고도 함)는 Java Platform, Standard Edition(JavaSE) 및 Java Platform, Enterprise Edition(JavaEE)을 사용하는 응용 프로그램의 관계형 데이터를 관리하는 Java 프레임워크입니다.
이 컨텍스트에서의 지속성에는 다음 3가지 영역이 포함됩니다.
Spring Data JPA는 JPA 기반 저장소를 보다 쉽게 구현할 수 있는 포괄적인 Spring Data 프로젝트의 일부입니다.
특징:
- Spring 및 JPA 기반 저장소 구축에 대한 고도의 지원
- QueryDSL JPA
-
- 지원, 실행,
- 증증의
@Query
이 달린 부트스트랩 시간 - 엔티티 X ML 의 경우
- 하여 기반의
@EnableJpaRepositories
JPA
JPA는 Java 객체가 관계형 데이터베이스 시스템에 매핑되는 방식을 표준화하는 규격입니다.에 JPA와 됩니다.EntityManagerFactory
,EntityManager
및 Java 엔티티 객체를 데이터베이스 테이블에 매핑하는 데 도움이 되는 주석.
HIbernate, EclipseLink 또는 Open JPA와 같은 여러 JPA 공급자를 사용할 수 있습니다.
스프링 데이터 JPA
스프링 데이터 JPA는 JPA 데이터 액세스 추상화입니다.JPA와 마찬가지로 스프링 데이터 JPA는 JPA 공급자가 없으면 작동하지 않습니다.
스프링 데이터 JPA는 DDD 패턴 또는 에 대한 솔루션을 제공합니다.메서드 이름 규칙을 통해 사용자 대신 JPA 쿼리를 생성할 수도 있습니다.
Spring Data JPA, Eclipse Link, JPA. 또는 흥미로운 장점은 Spring Java EE를 를 선언적으로 할 수 입니다.@Transactional
주석입니다.
marketing. Spring life-cyle follows a pattern of rhetoric that Java item X is evil, then the realization that it is needed, then the rebranding and claim to have invented it.
ReferenceURL : https://stackoverflow.com/questions/16148188/whats-the-difference-between-jpa-and-spring-data-jpa
'IT이야기' 카테고리의 다른 글
Nuxt-auth v5 모듈이 로그인한 사용자를 스토어 상태로 설정하지 않음 (0) | 2022.06.10 |
---|---|
C의 pthread 스레드에서 값을 반환하려면 어떻게 해야 합니까? (0) | 2022.06.10 |
컨테이너가 카드 안에 있을 때 데이터 테이블을 전체 너비로 확대하려면 어떻게 해야 합니까? (0) | 2022.06.09 |
vuex 저장소를 입력하는 일반 유형 (0) | 2022.06.09 |
C에서의 공유 글로벌 변수 (0) | 2022.06.09 |