Spring Entity Manager와 Spring Data Repository의 차이점은 무엇입니까?
저는 웹사이트에서 JPA를 사용하고 있습니다.데이터 저장을 위한 옵션을 검토한 후 2가지 접근법을 발견했습니다.첫 번째 접근 방식은 javax.persistence 구현을 사용하는 것입니다.엔티티 관리자.LocalContainerEntityManagerFactoryBean을 사용하여 EntityManager 인스턴스를 인스턴스화했습니다.EntityManager 인스턴스를 가져오면 이 인스턴스를 사용하여 엔티티를 저장할 수 있습니다.예를들면,
entityManager.merge(someEntity);
다른 옵션은 org.springframework.data.repository 인스턴스를 사용하는 것입니다.크루드 저장소.첫째, CrudRepository의 인스턴스를 얻으면 엔티티를 저장하는 데 사용할 수 있습니다.예를들면,
aCrudRepository.save(someEntity);
엔터티 관리자와 CrudRepository를 사용하여 엔터티를 데이터베이스에 유지하는 것의 차이점은 무엇입니까?두 가지 접근 방식(엔티티 관리자 대 크루드 저장소)의 이점 또는 단점은 무엇입니까?
Java/Spring에서 영구 데이터를 사용하는 작업에는 여러 계층이 계층은 다음과 같습니다.
- JDBC
- Jdbc 템플릿
- JPA(포함)
EntityManager
) - 스프링 데이터 JPA(포함)
Repository
)
각 추상화는 개발자를 하위 수준의 세부 정보로부터 보호하지만 자체적인 복잡성을 가져올 수 있습니다.JdbcTemplate는 일반 JDBC에 대한 얇은 추상화입니다.Repository
에 대한 추상화입니다.EntityManager
그것은 개발자들을 몇 가지 복잡한 세부 사항으로부터 보호합니다.EntityManager
그리고 상용구 코드와 많은 편리한 방법들을 추가합니다.
예를 들어.CrudRepository
의 구현을 추가합니다.findAll()
이는 매우 일반적이기 때문에 사전 정의하는 것이 타당합니다.리포지토리에는 엔티티 자체(예: 쿼리)에서 메서드 이름(구성에 대한 컨벤션)에서 쿼리를 생성하는 여러 가지 편리한 방법이 있습니다.쿼리 DSL과 함께 nice typesafe Fluent API를 사용하거나 동적 투영을 사용할 수 있습니다.
이 두 인터페이스는 두 가지 다른 접근 방식을 제공합니다.
org.springframework.data.repository.CrudRepository
CRUD 작업을 제공하는 리포지토리의 공통 인터페이스입니다.javax.persistence.EntityManager
지속성 컨텍스트와 연결되어 있습니다.스프링에는 확장되는 자체 인터페이스가 있습니다.CrudRepository
이 목적을 위해 호출되었습니다.
지속적인 API의 장점과 단점에 대해 알아주셨으면 합니다.그렇지 않으면 이 질문에 대한 답을 읽을 수 있습니다.
언급URL : https://stackoverflow.com/questions/14621495/what-is-the-difference-between-an-spring-entity-manager-and-spring-data-reposito
'programing' 카테고리의 다른 글
코드 점화기를 사용하여 리디렉션 (0) | 2023.08.19 |
---|---|
C# MVC 컨트롤러가 Ajax POST 요청에서 십진수 또는 이중 값을 가져올 수 없습니다. (0) | 2023.08.19 |
registerGlobal(), configure(), configureGlobal(), configureGlobal(), configureGlobal Security in Spring security 간의 차이 (0) | 2023.08.19 |
jQuery vs jQuery 모바일 vs jQuery UI? (0) | 2023.08.19 |
부모가 호버링될 때 자식 요소의 CSS 변경 (0) | 2023.08.19 |