면책 조항 : 저는 Hibernate OGM 개발자 중 한 명입니다. 그래서 나는 그 이유를 설명하려고 노력할 것입니다.
Hibernate OGM은 NoSQL 솔루션에 대한 Java Persistence (JPA) 지원을 제공합니다. Hibernate ORM의 엔진을 재사용하지만 엔티티는 관계형 데이터베이스 대신 NoSQL 데이터 스토어에 유지됩니다. 또한 JPA가 적합하지 않을 때 특정 데이터 저장소 기능에 대한 액세스를 제공하는 것을 목표로합니다.
이 방법은 여러 가지 이유로 흥미 롭다 : 의미와 API
알려진. Java 개발자는 이미 JPA에 익숙합니다. 즉, 저수준 API를 배울 필요가 없습니다. 또한 HQL 및 네이티브 백엔드 쿼리를 모두 지원합니다.
늦은 백엔드 선택. 올바른 NoSQL 데이터 저장소를 선택하는 것은 쉬운 일이 아닙니다. Hibernate OGM을 사용하면 특정 NoSQL 솔루션을 사용할 필요가 없으며 다른 백엔드를 쉽게 전환하고 테스트 할 수 있습니다.
기존 도구 및 라이브러리. JPA와 Hibernate ORM은 잠시 동안 있었고, 당신은 그것들을 사용하는 라이브러리와 도구를 재사용 할 수있을 것입니다.
대부분의 JPA 논리적 모델이 적합합니다. 올바른 적합성의 예로는 @Embedded
, @EmbeddedCollection
및 @Entity
(선택하는 데이터 저장소를 기반으로하는 노드, 문서 또는 캐시가 될 수 있음)입니다. 사용자가 @Table
과 @Column
을 처리해야하기 때문에 특수 효과 이름이 이상하게 보일 수도 있습니다.
JPA는 객체 수준에서 지속성을 추상화하여 많은 트릭과 최적화를위한 공간을 제공합니다. 몇 가지 데이터 저장소에 데이터를 저장하고 특정 읽기 작업에 가장 적합한 데이터를 사용하는 등 여러 가지 아이디어가 있습니다.
JPA의 개념 중 일부는 트랜잭션과 같은 NoSQL 세계로 쉽게 매핑되지 않습니다. 트랜잭션 구분 방법에 액세스 할 수는 있지만 기본적으로 트랜잭션을 지원하지 않는 데이터 저장소는 롤백 할 수 없습니다 (이 경우 트랜잭션은 그룹 작업 및 호출 수 최적화를 위해 사용됩니다). db).
또한 데이터 세트가 본질적으로 비 도메인 모델 중심 인 경우 Hibernate OGM은 사용자를위한 것이 아닙니다.
봄 데이터입니다 :) ... 일반적으로 봄과 일하는 사랑 ... 내 질문에 답해 주셔서 감사합니다. – hajime