gpt4 book ai didi

java - 持久性管理器中的 HashMap

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:11:42 26 4
gpt4 key购买 nike

所以我正在尝试使用 servlet、过滤器等构建一个谷歌应用引擎。我有一个看起来像这样的 java 文件:

public class Idea implements Comparator<Idea> {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;

@Persistent
private User author;

@Persistent
private String content;

@Persistent
private Date date;

@Persistent
private Map<User, Boolean> positiveVotes ;

@Persistent
private Map<User, Boolean> negativeVotes;

public Idea(User author, String content, Date date) {
this.author = author;
this.content = content;
this.date = date;
this.positiveVotes = new HashMap<User, Boolean>();
this.negativeVotes = new HashMap<User, Boolean>();
}

但是当我尝试运行我的程序时,我得到一个以以下内容开头的异常堆栈:

Feb 13, 2010 5:01:23 PM com.google.apphosting.utils.jetty.JettyLogger warn
WARNING: /sign
java.lang.IllegalArgumentException: positiveVotes: java.util.HashMap is not a supported property type.
at com.google.appengine.api.datastore.DataTypeUtils.checkSupportedSingleValue(DataTypeUtils.java:145)
at com.google.appengine.api.datastore.DataTypeUtils.checkSupportedValue(DataTypeUtils.java:127)
at com.google.appengine.api.datastore.Entity.setProperty(Entity.java:280)

所以,我的问题是为什么它提示 java.util.HashMap 不是受支持的属性类型,以及我可以做些什么来解决它。谢谢!希望有人尽快回复。

最佳答案

您可以要求 GAE 将 HashMap 存储为 Blob 值,方法是添加 JDO 注释以将此字段标记为已序列化存储:

@Persistent(serialized="true")

https://code.google.com/intl/pl/appengine/docs/java/datastore/dataclasses.html#Serializable_Objects

关于java - 持久性管理器中的 HashMap ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2258626/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com