Java &引用;HashMap不是受支持的属性类型";-嵌入带有Objectify 4的地图

Java &引用;HashMap不是受支持的属性类型";-嵌入带有Objectify 4的地图,java,google-cloud-datastore,objectify,Java,Google Cloud Datastore,Objectify,我正在尝试将映射嵌入Objectify 4(和GAE SDK 1.9.0)的实体中 节目内容如下: @Embed class LevelTwo { String bar; } @Entity class EntityWithEmbeddedCollection { @Id Long id; List<LevelOne> ones = new ArrayList<LevelOne>(); } 有什么建议吗?@EmbedMap仅适用于字符串键,它通

我正在尝试将映射嵌入Objectify 4(和GAE SDK 1.9.0)的实体中

节目内容如下:

@Embed
class LevelTwo {
    String bar;
}

@Entity
class EntityWithEmbeddedCollection {
    @Id Long id;
    List<LevelOne> ones = new ArrayList<LevelOne>();
}

有什么建议吗?

@EmbedMap仅适用于字符串键,它通过在实体上创建类似“foo.bar.yourkeyhere”的属性来工作。这不是一个非常复杂的机制


你到底想干什么?你也可以考虑MaPixy注释和嵌入的集合。

< P>读者应该注意到,2014-03-28发布了ObjyType 4.1,并且在嵌入的处理方面发生了重大变化(这与这篇文章相关)。这是一项重大改进,最近谷歌的低级数据存储API得到了改进

公告如下:

我想在各种情况下使用它将长值(数据存储Id)映射到对象或整数。参赛作品的数量将在5到500之间。我以为@Map只是公开了一个相当复杂的数据存储特性。既然你已经解释过了,我想我现在应该使用@序列化,然后当我需要对集合进行查询时考虑其他选项。
class LevelTwo {
    Integer one;
    Boolean bee;
}

class EntityWithEmbeddedCollection {
    @Id Long id;
    @EmbeddedMap
    Map<Long, LevelTwo> ones = new HashMap<Long, LevelTwo>();
}
com.googlecode.objectify.SaveException:
Error saving com.myapp.UserInfoSvr@96: items: java.util.HashMap is not a supported property type.
    at com.googlecode.objectify.impl.Transmog.save(Transmog.java:105)