我有一个自定义对象,我想保存在数据存储区(而不是blobstore)中。 像
这样的东西Entity.setProperty("myobj", custonObject)
我在此customObject中有一个用户列表
public user class{
String name;
String age;
}
public user_s class{
List<user> userList;
public user_s(){
userList = new ArrayList<user>();
}
}
然后我想保存user_s。
我想我需要一些序列化,如果可能的话。我可以看到数据存储区中有一个Blob类,但是你如何使用它? https://developers.google.com/appengine/docs/java/datastore/entities
此致
答案 0 :(得分:1)
我知道您的问题专门说“低级API”,但如果您想避免在任何地方制作样板序列化代码,您可能需要考虑使用Objectify。然后,您只需在要存储的自定义对象列表中使用@Serialized
注释。
我称之为Objectify“中低级别” - 它为您提供了高度的控制,您可以完全按照自己的意愿操作数据存储区,而不会对JDO进行抽象/阻碍,但仍然可以避免一堆样板。
答案 1 :(得分:0)
是的,有一个Blob
类。
序列化很简单:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(obj);
Blob blob = new Blob(baos.toByteArray());