我正在开发一个可以从GAE获取数据的移动应用程序,我正在尝试使用Protocol Buffers和JDO。首先,我不确定如何使PB持久化。我知道这只是JDO注释标签的问题。
我还看到了这个thread,他们警告说PB数据无法编入索引。不过,我不确定这对我是否有问题。是否有一种快乐的媒介,比如使用JDO进行持久化,但是使用PB进行通信?
由于
编辑:听起来像最初的考虑是一个坏主意,但我仍然想知道我是否可以获得使用PB只是为了向客户端传输数据的好处。将JDO对象转换为PB对象以传输到客户端的开销是否会超过PB的好处?实际上,听起来这正是GAE内部发生的事情,无论如何,这可能意味着它是一个很好的方式......
答案 0 :(得分:0)
来到这里的派对很晚,但答案是“这取决于”。 :-D
JDO的优势在于它可以与Java在线上进行极为互操作,并且内置于App Engine中。为了让它开箱即用,这很难被击败。
协议缓冲区的优点是效率极高,可以使用多种语言 - 谷歌支持Java,Python,C ++,但第三方支持huge list种其他语言。它们具有可扩展性,易于维护。
正如您所指出的,JDO对象会自动被App Engine索引,但很难丢失,尽管您可以很简单地构建自己的索引。
我坦率地说这些天使用协议缓冲区语言作为数据定义语言,但大多数事情都是以JSON形式发送的 - 当它们集中存储时它们只能转换回原型并且我可以节省大量资金。 ..