JDO ile JPA arasındaki yarışta sadece datanucleus posterlerine katılıyorum.
Her şeyden önce ve en önemlisi, datanucleus posterleri ne yaptıklarını biliyor. Sonuçta kalıcı bir kitaplık geliştiriyorlar ve ilişkisel dışındaki veri modellerine aşinalar, örneğin Büyük Masa. Eminim ki hazırda bekletme için bir geliştiricinin burada olduğunu söylerdi: "Çekirdek kitaplıklarımızı oluştururken tüm varsayımlarımız ilişkisel modele sıkı sıkıya bağlıdır, hazırda bekletme GAE için optimize edilmemiştir".
İkincisi, JPA tartışmasız olarak daha yaygın kullanımdadır, resmi Java EE yığınının bir parçası olmak biraz yardımcı olur, ancak bu daha iyi olduğu anlamına gelmez. Aslında, JDO, onu okursanız, JPA'dan daha yüksek bir soyutlama seviyesine karşılık gelir. JPA, RDBMS veri modeline sıkı sıkıya bağlıdır.
Programlama açısından bakıldığında, JDO API'lerini kullanmak çok daha iyi bir seçenektir çünkü kavramsal olarak çok daha az ödün veriyorsunuz. Kullandığınız sağlayıcının temel veritabanını desteklemesi koşuluyla, teorik olarak arzu ettiğiniz herhangi bir veri modeline geçebilirsiniz. (Uygulamada nadiren bu kadar yüksek düzeyde şeffaflık elde edersiniz, çünkü kendinizi GAE'nin nesnesine birincil anahtarlarınızı ayarlarken bulacaksınız ve kendinizi belirli bir veritabanı sağlayıcısına, örneğin google'a bağlayacaksınız). yine de taşınması daha kolay olacaktır.
Üçüncüsü, Hazırda Bekletme, Eclipse Bağlantısı ve hatta GAE ile bahar kullanabilirsiniz. Google, uygulamalarınızı oluştururken kullandığınız çerçeveleri kullanmanıza izin vermek için büyük bir çaba sarf etmiş görünüyor. Ancak insanların GAE uygulamalarını RDBMS üzerinde çalışıyormuş gibi oluşturduklarında fark ettikleri şey, yavaş olmalarıdır. GAE'de bahar YAVAŞ. Bunun doğru olduğunu görmek için bu konudaki Google IO videolarını google'da arayabilirsiniz.
Ayrıca, standartlara bağlı kalmak mantıklı bir şeydir, prensip olarak alkışlarım. Öte yandan, JPA'nın Java EE yığınının bir parçası olması, insanların zaman zaman seçenek kavramlarını kaybetmelerine neden olur. Java Sunucusu Yüzlerinin de Java EE yığınının bir parçası olduğunu anlayın. Ve web GUI geliştirme için inanılmaz derecede düzenli bir çözümdür. Ama sonunda, neden insanlar, daha zeki insanlar söylersem, bu standarttan sapıp onun yerine GWT'yi kullanıyorlar?
Tüm bunlarda, JPA için çok önemli bir şeyin gittiğini söylemeliyim. Bu Guice ve JPA için uygun desteği. Görünüşe göre google bu noktada her zamanki kadar akıllı değil ve şimdilik JDO'yu desteklememekten memnun. Hala karşılayabileceklerini düşünüyorum ve sonunda Guice JDO'yu da yutacak, ... ya da belki alamayacak.