我正在嘗試在GAE中編寫一個JDO註釋類,並且我想要保留一張地圖。該地圖應該是一個實體字段,它是由Date對其進行散列的實體集合。 (我甚至不確定這是否是正確的方法)。javax.persistence.metamodel.Map和java.util.Map有什麼區別?
Eclipse的自動完成爲我提供了javax.persistence.metamodel.Map和java.util.Map。這兩者有什麼區別?前者的例子是什麼?
我正在嘗試在GAE中編寫一個JDO註釋類,並且我想要保留一張地圖。該地圖應該是一個實體字段,它是由Date對其進行散列的實體集合。 (我甚至不確定這是否是正確的方法)。javax.persistence.metamodel.Map和java.util.Map有什麼區別?
Eclipse的自動完成爲我提供了javax.persistence.metamodel.Map和java.util.Map。這兩者有什麼區別?前者的例子是什麼?
一個是來自GAE支持的標準Java庫的類,另一個是JPA API(您沒有使用)的一部分。
只有這些集合[1]被允許在谷歌應用內引擎:
java.util.ArrayList<...>
java.util.HashSet<...>
java.util.LinkedHashSet<...>
java.util.LinkedList<...>
java.util.List<...>
java.util.Set<...>
java.util.SortedSet<...>
java.util.Stack<...>
java.util.TreeSet<...>
java.util.Vector<...>
所以我建議你在給定的包中使用這些類。
[1] https://developers.google.com/appengine/docs/java/datastore/jdo/dataclasses?hl=de#Collections
實際上並不完全正確。通過JDO/JPA已經支持地圖一段時間了。請參閱http://code.google.com/p/datanucleus-appengine/issues/detail?id=264&can=1&q=map&colspec=ID%20Stars%20Type%20Status%20Priority%20FoundIn%20TargetRelease%20Owner%20Summary以及請求讓他們更新文檔http://code.google.com/p/googleappengine/issues/detail?id=7548&q=map&colspec=ID%20Type%20Component%20Status%20Stars%20Summary%20Language%20Priority%20Owner%20Log – DataNucleus
注意:datanucleus-appengine庫的最後一個版本是2012年1月。因此,如果您使用這些文件或appengine-java-sdk的文件,則不支持Map。正如他們在問題中提到的,它將在2.0.1中提供(或者您可以自行構建它)。 – Eich
不完全(再次;-))。 2012年9月有2.1.1,2012年6月有2.0.1.1。我認爲很快就會在下一個AppEngine SDK中發佈2.1.2(因爲Google已經將它分拆出來用於構建)。 http://repo1.maven.org/maven2/com/google/appengine/orm/datanucleus-appengine/ – DataNucleus
據我從java.util.Map和javax.persistence.metamodel.Map的Javadoc這似乎並沒有在最新的API存在看,元地圖似乎是在UTIL地圖的包裝,使我們可以使用它來獲取關於util Map的元數據。
你能舉個例子說明它是如何工作的嗎?一個實際的樣本?還是僅供內部使用? –
地圖是一個地圖,沒有什麼特別的。所以看看http://www.datanucleus.org/products/accessplatform_3_1/jdo/orm/one_to_many_map.html – DataNucleus