Trong cuộc đua giữa JDO và JPA, tôi chỉ có thể đồng ý với các áp phích về hạt nhân dữ liệu.
Trước hết, và cũng là quan trọng nhất, các áp phích của hạt nhân dữ liệu biết họ đang làm gì. Sau cùng, họ đang phát triển một thư viện bền vững và quen thuộc với các mô hình dữ liệu khác với mô hình quan hệ, ví dụ: Big Table. Tôi chắc chắn rằng id một nhà phát triển cho chế độ ngủ đông đã ở đây, anh ấy sẽ nói: "tất cả các giả định của chúng tôi khi xây dựng các thư viện cốt lõi của chúng tôi được kết hợp chặt chẽ với mô hình quan hệ, ngủ đông không được tối ưu hóa cho GAE".
Thứ hai, chắc chắn JPA được sử dụng rộng rãi hơn, là một phần của ngăn xếp Java EE chính thức sẽ giúp ích một chút, nhưng điều đó không nhất thiết có nghĩa là nó tốt hơn. Trên thực tế, JDO, nếu bạn đọc về nó, tương ứng với mức độ trừu tượng cao hơn JPA. JPA được kết hợp chặt chẽ với mô hình dữ liệu RDBMS.
Từ quan điểm lập trình, sử dụng các API JDO là một lựa chọn tốt hơn nhiều, bởi vì bạn đang thỏa hiệp về mặt khái niệm ít hơn rất nhiều. Về mặt lý thuyết, bạn có thể chuyển sang bất kỳ mô hình dữ liệu nào mà bạn mong muốn, miễn là nhà cung cấp bạn sử dụng hỗ trợ cơ sở dữ liệu bên dưới. (Trong thực tế, bạn hiếm khi đạt được mức độ minh bạch cao như vậy, bởi vì bạn sẽ thấy mình đặt các khóa chính của mình trên đối tượng của GAE và bạn sẽ tự ràng buộc mình với một nhà cung cấp cơ sở dữ liệu cụ thể, ví dụ như google). nó vẫn sẽ dễ dàng hơn để di chuyển.
Thứ ba, bạn có thể sử dụng Hibernate, Eclipse Link và thậm chí cả mùa xuân với GAE. Google dường như đã rất nỗ lực để cho phép bạn sử dụng các khuôn khổ mà bạn quen dùng để xây dựng các ứng dụng của mình. Nhưng những gì mọi người nhận ra khi họ xây dựng các ứng dụng GAE của mình như thể chúng đang chạy trên RDBMS là chúng rất chậm. Mùa xuân trên GAE là CHẬM. Bạn có thể google Google IO video về chủ đề này để thấy điều đó là đúng.
Ngoài ra, về nguyên tắc, tôi hoan nghênh việc tuân thủ các tiêu chuẩn là một điều hợp lý nên làm. Mặt khác, JPA là một phần của ngăn xếp Java EE khiến mọi người, đôi khi, mất khái niệm về các tùy chọn. Nếu bạn muốn, hãy nhận ra rằng Mặt máy chủ Java cũng là một phần của ngăn xếp Java EE. Và nó là một giải pháp gọn gàng không thể tin được để phát triển GUI web. Nhưng cuối cùng, tại sao mọi người, những người thông minh hơn nếu tôi có thể nói vậy, lại đi chệch khỏi tiêu chuẩn này và sử dụng GWT thay thế?
Trong tất cả những điều này, tôi phải khẳng định rằng có một điều rất quan trọng đối với JPA. Đó là Guice và sự hỗ trợ tiện lợi của nó cho JPA. Có vẻ như google đã không thông minh như bình thường ở điểm này và nội dung, hiện tại không hỗ trợ JDO. Tôi vẫn nghĩ rằng họ có đủ khả năng chi trả, và cuối cùng Guice cũng sẽ nhấn chìm JDO, ... hoặc có thể không.