Java 嵌入类中的JDO-HashMap

Java 嵌入类中的JDO-HashMap,java,google-app-engine,hashmap,jdo,Java,Google App Engine,Hashmap,Jdo,您是否能够在App Engine的嵌入式类中存储HashMap? 我有以下课程: @Persistent(serialized = "true") @Embedded private Stats stats; @PersistenceCapable @EmbeddedOnly public static class Stats implements Serializable { private static final long serialVersionUID = 1L;

您是否能够在App Engine的嵌入式类中存储HashMap? 我有以下课程:

@Persistent(serialized = "true")
@Embedded
private Stats stats;

@PersistenceCapable
@EmbeddedOnly
public static class Stats implements Serializable {
    private static final long serialVersionUID = 1L;        
    @Persistent(serialized = "true", defaultFetchGroup="true")
    private Map<String, Integer> requests;

    public Stats() {
        requests = new HashMap<String, Integer>();
    }
}
@Persistent(serialized=“true”)
@嵌入
私人统计;
@持久的
@仅嵌入
公共静态类Stats实现可序列化{
私有静态最终长serialVersionUID=1L;
@持久性(serialized=“true”,defaultFetchGroup=“true”)
私有映射请求;
公共统计(){
requests=newhashmap();
}
}
但是,当我尝试向HashMap添加一个项目并将其持久化时,我会遇到以下错误:

指定的类com.google.appengine.api.datastore.Blob不可持久化

我知道您可以在“普通”类中成功地使用HashMap,但它们也可以在嵌入式类中使用吗


谢谢

我还没有在嵌入式类中尝试过,但是我在JDO对象中的映射需要在包含类上添加FetchGroup注释

    @SuppressWarnings("serial

        ")
        @PersistenceCapable(identityType=IdentityType.APPLICATION, detachable="true")
        @FetchGroup(name="QueryAggregationJobJDO", members={
                                                @Persistent(name="appName", recursionDepth=-1),
etc....                                         
        public class QueryAggregationJobJDO extends AggregationJobJDO implements SystemObject {
            @Persistent(serialized="true")  // this is string of app names and a count for each name found
            public Map< String, Long >  appName = new HashMap<String, Long>();

我也有同样的问题。区别在于,我得到的错误消息是“HashMap不是受支持的属性类型”(我的类不是EmbeddedOnly,这可能会产生影响)。讨论了这个问题-虽然还没有有用的答案。
@Override
public boolean open() {
    DataAreaManager dataAreaManager = new DataAreaManager();
    dataAreaManager.setDataArea(VERSION_DATA_AREA);

    if ((pm == null) || (pm.isClosed())) {

        pm = PMF.get(type).getPersistenceManager();
        pm.getFetchPlan().addGroup("TouchActiveUserJDO");
        pm.getFetchPlan().addGroup("UserRoleJDO");
        pm.getFetchPlan().addGroup("QueryAggregationJobJDO");