2013-01-08 10 views
0

我正在嘗試在GAE中編寫一個JDO註釋類,並且我想要保留一張地圖。該地圖應該是一個實體字段,它是由Date對其進行散列的實體集合。 (我甚至不確定這是否是正確的方法)。javax.persistence.metamodel.Map和java.util.Map有什麼區別?

Eclipse的自動完成爲我提供了javax.persistence.metamodel.Map和java.util.Map。這兩者有什麼區別?前者的例子是什麼?

回答

1

一個是來自GAE支持的標準Java庫的類,另一個是JPA API(您沒有使用)的一部分。

+0

你能舉個例子說明它是如何工作的嗎?一個實際的樣本?還是僅供內部使用? –

+0

地圖是一個地圖,沒有什麼特別的。所以看看http://www.datanucleus.org/products/accessplatform_3_1/jdo/orm/one_to_many_map.html – DataNucleus

1

只有這些集合[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

+1

實際上並不完全正確。通過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

+0

注意:datanucleus-appengine庫的最後一個版本是2012年1月。因此,如果您使用這些文件或appengine-java-sdk的文件,則不支持Map。正如他們在問題中提到的,它將在2.0.1中提供(或者您可以自行構建它)。 – Eich

+0

不完全(再次;-))。 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