2011-05-16 15 views
2

我們正在構建一個Android應用程序,該應用程序通過Protocol Buffers與Java App Engine Server進行通信。我們使用JDO作爲服務器上的持久機制。在App Engine上使用JDO支持Protocol Buffer Model

我的問題是如何在App Engine數據庫中保留對象。看起來唯一的方法是爲每個模型創建兩個類:一個是從.proto文件生成的模型,另一個是封裝第一個類並提供JDO註釋,附加方法等的類。這看起來相當麻煩對我而言,我想知道關於這方面的最佳做法可能是什麼。有沒有辦法避免這種重複(例如,JPA允許在外部XML文件中指定持久性註釋,但是由於文檔較差,我們寧願避免App Engine上的JPA)?

回答

0

App Engine的數據存儲只存儲模型協議緩衝區。如果您的客戶端發送給您的協議緩衝區是PB模型,則可以將其直接存儲到低級API中來存儲它。如果是任何其他類型的PB,則需要將其手動轉換爲實體,或者需要對其進行序列化並將其存儲在實體的二進制屬性中。您選擇哪一種取決於您需要如何查詢存儲的對象。不管怎樣,JDO可能是一個糟糕的選擇 - 你應該看看Objectify,或者直接使用底層API。

+0

「模型協議緩衝區」是什麼意思?這是App Engine內部使用的protobuf類型嗎?如果是這樣,它暴露在任何地方?我實際上使用了objectify,但它也不支持protobufs。 (您必須手動序列化/反序列化或轉換爲Objectify可嵌入的類。) – aij 2014-06-04 00:09:45