在App Engine上使用JDO保持协议缓冲区模型

时间:2011-05-16 12:24:21

标签: java google-app-engine jdo protocol-buffers

我们正在构建一个Android应用程序,它通过Protocol Buffers与Java App Engine服务器通信。我们使用JDO作为服务器上的持久性机制。

我的问题是如何在App Engine数据库中保留对象。似乎唯一的方法就是为每个模型创建两个类:一个是从.proto文件生成的模型,另一个是包装第一个类并提供JDO注释,其他方法等的类。这看起来相当麻烦对我来说,我想知道对此最好的做法是什么。有没有办法避免这种重复(例如,JPA允许在外部XML文件中指定持久性注释,但我们宁愿在App Engine上避免JPA,因为文档很差)?

1 个答案:

答案 0 :(得分:0)

App Engine的数据存储区仅存储模型协议缓冲区。如果您的客户端发送的协议缓冲区是Model PB,您可以通过将其戳入低级API来直接存储它。如果它是任何其他类型的PB,您需要将其(手动)转换为实体,或者您需要将其序列化并将其存储在实体的二进制属性中。您选择哪一个取决于您查询存储对象的方式。

无论哪种方式,JDO可能都是一个糟糕的选择 - 你应该研究Objectify,或直接使用低级API。