【问题标题】:Google App Engine JDO persistence with HashMap child field带有 HashMap 子字段的 Google App Engine JDO 持久性
【发布时间】:2011-06-05 15:27:08
【问题描述】:

我有一个父类,我想在其中存储一个 HashMap。但是,每次我尝试修改该 HashMap 时,都会出现以下错误:

PM org.datanucleus.store.appengine.MetaDataValidator checkForIllegalChildField 警告:无法验证一对多关系 com.monsters.server.MonUser.monsters

知道那是什么吗?代码如下:

这是父类的代码

@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable="true") 
public class MonUser {
    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Key key;

    @Persistent(serialized="true", mappedBy = "owner")
    @Element(dependent = "true")
    private HashMap<String,Monster> monsters;

...

@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable="true")
public class Monster {
    @PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Key key;

    @Persistent
    private MonUser owner;

...

我已经尝试了 appengine 页面上有关关系的所有内容,但似乎没有任何帮助。任何信息都会非常有帮助!

附:我已经让它与 ArrayLists 等一起工作,但不是 hashmaps、hashtables、maps 等。如果这有帮助的话。

【问题讨论】:

    标签: google-app-engine persistence entity-relationship jdo hashmap


    【解决方案1】:

    JDO 仅支持以下Collections

    • java.util.ArrayList&lt;...&gt;
    • java.util.HashSet&lt;...&gt;
    • java.util.LinkedHashSet&lt;...&gt;
    • java.util.LinkedList&lt;...&gt;
    • java.util.List&lt;...&gt;
    • java.util.Set&lt;...&gt;
    • java.util.SortedSet&lt;...&gt;
    • java.util.Stack&lt;...&gt;
    • java.util.TreeSet&lt;...&gt;
    • java.util.Vector&lt;...&gt;

    【讨论】:

      【解决方案2】:

      您可以使用以下方法持久化 HashMap:

      @Persistent(serialized = "true", defaultFetchGroup="true")

      JDO - HashMap within an embedded Class

      为了确保更改的持久性,您需要始终创建一个新的 HashMap 实例,请参见末尾: http://gae-java-persistence.blogspot.de/2009/10/serialized-fields.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-24
        • 1970-01-01
        • 2013-05-02
        • 2014-01-24
        • 1970-01-01
        • 1970-01-01
        • 2012-01-25
        • 1970-01-01
        相关资源
        最近更新 更多