Tuyên bố từ chối trách nhiệm: Tôi là một trong những nhà phát triển OGM Hibernate nên tôi sẽ cố gắng cung cấp một số lý do đằng sau nó.
OGM Hibernate cung cấp hỗ trợ Java Persistence (JPA) cho các giải pháp NoSQL. Nó sử dụng lại engine Hibernate ORM nhưng vẫn tiếp tục tồn tại trong kho dữ liệu NoSQL thay vì một cơ sở dữ liệu quan hệ. Nó cũng nhằm mục đích cung cấp quyền truy cập vào các tính năng kho dữ liệu cụ thể khi JPA không phù hợp.
Cách tiếp cận này là thú vị vì nhiều lý do:
Được biết đến ngữ nghĩa và các API. Các nhà phát triển Java đã quen thuộc với JPA, điều này có nghĩa là người ta sẽ không phải học API cấp thấp hơn. Nó cũng hỗ trợ cả HQL và các truy vấn backend gốc.
Lựa chọn cuối phụ trợ muộn. Việc chọn kho dữ liệu NoSQL đúng không phải là tầm thường. Với Hibernate OGM bạn sẽ không phải cam kết với một giải pháp NoSQL cụ thể và bạn sẽ có thể chuyển đổi và kiểm tra các phần mềm phụ trợ khác nhau một cách dễ dàng.
Các công cụ và thư viện hiện có. JPA và Hibernate ORM đã được khoảng một thời gian và bạn sẽ có thể sử dụng lại các thư viện và các công cụ sử dụng chúng bên dưới.
Hầu hết các mô hình hợp lý JPA đều phù hợp. Một ví dụ về sự phù hợp tốt là @Embedded
, @EmbeddedCollection
và @Entity
(có thể là nút, tài liệu hoặc bộ nhớ cache dựa trên kho dữ liệu bạn chọn). Phải thừa nhận rằng, tên chú thích có thể lạ vì bạn cũng sẽ phải xử lý @Table
và @Column
.
JPA tóm tắt sự kiên trì ở cấp đối tượng, để lại rất nhiều thủ thuật và tối ưu hóa. Chúng tôi có một số ý tưởng đã được lên kế hoạch, như sự đa dạng về lâu dài: lưu trữ dữ liệu trong một số kho dữ liệu và sử dụng tốt nhất cho một công việc đọc cụ thể.
Hạn chế chính là một số khái niệm về JPA không dễ dàng được ánh xạ tới thế giới NoSQL: giao dịch chẳng hạn. Mặc dù bạn sẽ có quyền truy cập vào các phương thức phân giới giao dịch, bạn sẽ không thể khôi phục trên các cửa hàng dữ liệu không hỗ trợ giao dịch một cách tự nhiên (giao dịch, trong trường hợp này sẽ được sử dụng để nhóm hoạt động và cố gắng tối ưu hóa số lượng cuộc gọi đến db).
Ngoài ra, nếu tập dữ liệu của bạn là do tự nhiên không phải là mô hình miền trung tâm, thì Hibernate OGM không dành cho bạn.
Dữ liệu mùa xuân là :) ... Thích làm việc với Spring nói chung ... Cảm ơn bạn đã trả lời câu hỏi của tôi. – hajime