在App Engine的JDO實現中,對象類型與持久化到數據存儲的實體一起保存爲'Kind'。當這些實體從數據存儲中取回時,它們將作爲原始對象類型自動返回(在某個JDO層中)。令我困惑的是,只有班級的簡單名字纔會被保存;不是完整的路徑。那麼JVM如何加載正確的類?GAE/JDO如何將實體轉換爲域對象?
例如,如果我有com.project.domain.User,並且將此類的一個實例保存到數據存儲中,則只會爲實體類型定義「用戶」。當我使用JDO來選擇這個數據時,我得到一個com.project.domain.User。 GAE/JDO如何知道加載com.project.domain.User而不是com.project.other.domain.User?
那麼這個內部映射如何在JVM啓動/關閉之間持久?我還沒有定義任何XML或註釋。 – Brad 2010-11-12 05:00:48
因爲「JDO提供者」是GAE(或者更確切地說是他們的DataNucleus插件),所以GAE參與其中。如果您想解決這個問題,可以通過http://code.google.com/p/datanucleus-appengine/source/browse/trunk/src/org/datanucleus/store/appengine/DatastorePersistenceHandler.java – DataNucleus 2010-11-12 08:20:22