Son zamanlarda bir java projesi için bir kalıcılık çerçevesi değerlendirip seçtim ve bulgularım aşağıdaki gibidir:
Ne görüyorum ki JDO lehine destek öncelikle:
- sql olmayan veri kaynakları, db4o, hbase, ldap, bigtable, couchdb (cassandra için eklentiler) vb.
- bir sql'den sql olmayan veri kaynağına veya tam tersine kolayca geçiş yapabilirsiniz.
- proxy nesnesi yok ve bu nedenle hashcode () ve equals () uygulamalarında daha az acı var
- daha fazla POJO ve dolayısıyla daha az geçici çözüm gerekir
- daha fazla ilişki ve alan türünü destekler
ve JPA lehine destek öncelikle:
- daha popüler
- jdo öldü
- bayt kodu geliştirme kullanmaz
JDO / Datanucleus'u JDO kullanmadığı için zayıf argümanlar sunan açıkça kullanmayan JPA geliştiricilerinden bir çok JPA yanlısı gönderi görüyorum.
JDO'ya geçiş yapan ve sonuç olarak çok daha mutlu olan JDO kullanıcılarından da birçok yayın görüyorum.
JPA'nın daha popüler olması açısından, bunun kısmen teknik olarak üstün olmaktan ziyade RDBMS satıcı desteğinden kaynaklandığı görülmektedir. (Bana VHS / Betamax gibi geliyor).
JDO ve referans uygulaması Datanucleus, Google'ın GAE'yi benimsemesi ve kaynak kodunda aktif geliştirme (http://sourceforge.net/projects/datanucleus/) tarafından gösterildiği gibi açıkça ölmedi.
Bayt kodu geliştirme nedeniyle JDO ile ilgili birtakım şikayetler gördüm, ancak neden kötü olduğu için henüz bir açıklama yok.
Aslında, NoSQL çözümleri tarafından giderek daha saplantı haline gelen bir dünyada, JDO (ve datanucleus uygulaması) çok daha güvenli bir bahis gibi görünüyor.
Ben sadece JDO / Datanucleus kullanmaya başladım ve db4o ve mysql arasında kolayca geçiş yapabilmeniz için ayarladım. Hızlı gelişim için db4o kullanmak ve DB şeması hakkında çok fazla endişelenmenize gerek kalmaz ve daha sonra, şema bir veritabanına dağıtılacak şekilde sabitlendiğinde. Daha sonra başvurumun tamamını / bir kısmını GAE'ye dağıtabileceğime veya çok fazla yeniden düzenleme yapmadan dağıtılmış depolama / harita azaltma la hbase / hadoop / cassandra'dan yararlanabileceğime eminim.
Datanucleus ile başlamanın ilk engelini biraz zor buldum - Datanucleus web sitesindeki belgelere girmek biraz zor - öğreticiler istediğim gibi takip etmek kolay değil. Bununla birlikte, ilk öğrenme eğrisini geçtikten sonra API ve haritalandırma hakkında daha ayrıntılı belgeler çok iyi.
Cevap, ne istediğinize bağlı. Daha temiz bir kod, daha fazla satıcı kilidi yok, daha pojo odaklı, nosql seçenekleri ayetler daha popüler olurdu.
Diğer geliştiricilerin / koyunların çoğuyla aynı şekilde yaptığınız sıcak telaşlı hissi istiyorsanız, JPA / hazırda bekletme'yi seçin. Alanınızda liderlik yapmak istiyorsanız, JDO / Datanucleus'u test edin ve kendi kararınızı verin.