google-app-engine Google App Engine上的JDO與JPA for Java





6 Answers

GAE / J谷歌組織有幾個關於這件事的文章。 我會在那裡搜索,看看人們的意見。 你會得到一個非常不同的信息,以上述意見。 還關注BigTable不是RDBMS的事實。 使用正確的工具來完成這項工作

java google-app-engine jpa jdo

我想用Struts2在Google App Engine上開發我的項目。 對於數據庫我有兩個選項JPA和JDO。 請你們建議我嗎? 兩者對我來說都是新的,我需要學習它們。 所以我會在回復之後專注於一個。

謝謝。




我是JDO的開心用戶。 保持良好的工作人員。




為了記錄,它是Google App Engine(GAE),所以我們不使用Oracle / Sun規則來玩Google規則。

在它下面,JPA不適合GAE,它不穩定,不能按預期工作。 谷歌都不願意支持它,但最低限度。

而對於其他部分,JDO在GAE中非常穩定,並且(在某種程度上)Google有很好的文檔記錄。

但是,Google不推薦其中的任何一個。

http://code.google.com/appengine/docs/java/datastore/overview.html

低級別API將提供最佳性能,而GAE則關注性能。

http://gaejava.appspot.com/

例如,添加10個實體

Python:68ms

JDO:378ms

Java本機:30ms




去JDO。 即使你沒有這方面的經驗,也不難獲得,你將擁有一項新技能!




GAE / J將在年底前添加MYSQL。




都不是!

使用物化,因為更便宜(使用更少的資源),速度更快。 供參考: http://paulonjava.blogspot.mx/2010/12/tuning-google-appengine.html : http://paulonjava.blogspot.mx/2010/12/tuning-google-appengine.html

Objectify是專門為Google App Engine數據存儲設計的Java數據訪問API。 它佔據了“中間地帶”; 比JDO或JPA更易於使用和更透明,但比低級API方便得多。 Objectify旨在讓新手立即生產,同時也暴露GAE數據存儲的全部能力。

Objectify可以讓你堅持,檢索,刪除和查詢你自己的類型化對象。

@Entity
class Car {
    @Id String vin; // Can be Long, long, or String
    String color;
}

ofy().save().entity(new Car("123123", "red")).now();
Car c = ofy().load().type(Car.class).id("123123").now();
ofy().delete().entity(c);



Related