我们正在构建一个Android应用程序,它通过Protocol Buffers与Java App Engine服务器通信。我们使用JDO作为服务器上的持久性机制。
我的问题是如何在App Engine数据库中保留对象。似乎唯一的方法就是为每个模型创建两个类:一个是从.proto文件生成的模型,另一个是包装第一个类并提供JDO注释,其他方法等的类。这看起来相当麻烦对我来说,我想知道对此最好的做法是什么。有没有办法避免这种重复(例如,JPA允许在外部XML文件中指定持久性注释,但我们宁愿在App Engine上避免JPA,因为文档很差)?
答案 0 :(得分:0)
App Engine的数据存储区仅存储模型协议缓冲区。如果您的客户端发送的协议缓冲区是Model PB,您可以通过将其戳入低级API来直接存储它。如果它是任何其他类型的PB,您需要将其(手动)转换为实体,或者您需要将其序列化并将其存储在实体的二进制属性中。您选择哪一个取决于您查询存储对象的方式。
无论哪种方式,JDO可能都是一个糟糕的选择 - 你应该研究Objectify,或直接使用低级API。