2012-12-30 24 views
0

我有一個自定義對象,我想保存在數據存儲區(而不是blobstore)。 喜歡的東西Google App Engine低級別API - 將自定義對象保存爲Blob?

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

你確定,你在談論Java嗎? –

+0

我同意Moritz,請以更好的方式問你的問題,你問Blob Class並共享保存List對象的代碼。 –

回答

0

是的,有一個Blob類。

序列化很簡單:

ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
    ObjectOutputStream oos = new ObjectOutputStream(baos); 
    oos.writeObject(obj); 
    Blob blob = new Blob(baos.toByteArray()); 
+0

雖然我不明白你爲什麼問「你確定,你在談論Java?」 –

+0

@ user699215您在這個問題中編寫的代碼不是Java語法。在Java中,你編寫'public class ',其中''通常以大寫字母開頭並且不包含下劃線。 –

+0

你的意思是匈牙利符號 –

1

我知道你的問題特別說「低層API」,但你可能要考慮,如果你想避免做樣板序列化代碼到處使用客體。然後,您只需在要存儲的自定義對象列表上使用@Serialized註釋即可。

我會稱之爲Objectify爲「中低級別」 - 它給予了高度的控制,因爲您可以完全按照您的意願操作數據存儲區,而無需JDO的抽象/阻礙,但仍然可以避免一堆樣板。

+0

謝謝你的建議。 –

+0

+1對象(我也使用它)。 –