Google app engine 我可以使用JDO将实体序列化为字节[]吗?

Google app engine 我可以使用JDO将实体序列化为字节[]吗?,google-app-engine,serialization,jdo,Google App Engine,Serialization,Jdo,在GoogleAppEngine中,我可以使用JDO将Java对象持久化到数据存储中。 我还可以使用JDO将对象转换为字节[],以便将其放入memcache或通过HTTP发送吗 澄清:我想序列化我已经为JDO持久性注释的类。不得不使用另一种序列化机制似乎不必要地重复了这项工作,而且可能会很棘手,因为JDO/DataNucleus在其类上使用字节码操作来提供延迟加载等功能。JDO将对象持久化到数据存储。作为其中的一部分,当字段标记为“序列化”时,它可以执行序列化。但当存储在数据存储中时,它是序列化

在GoogleAppEngine中,我可以使用JDO将Java对象持久化到数据存储中。 我还可以使用JDO将对象转换为
字节[]
,以便将其放入memcache或通过HTTP发送吗


澄清:我想序列化我已经为JDO持久性注释的类。不得不使用另一种序列化机制似乎不必要地重复了这项工作,而且可能会很棘手,因为JDO/DataNucleus在其类上使用字节码操作来提供延迟加载等功能。

JDO将对象持久化到数据存储。作为其中的一部分,当字段标记为“序列化”时,它可以执行序列化。但当存储在数据存储中时,它是序列化的,从数据存储中检索时,它是反序列化的。如果你想序列化一些东西,为什么不自己做呢。。。为什么需要JDO呢?

看来您可以将JDO对象标记为可分离的,实现可序列化,然后当您想缓存它们时,只需调用detach(),然后按正常方式缓存即可。我没有尝试过这个,但从讨论组来看,它似乎有效


还有一些关于使用memcache启用JDO 2级缓存的一般性讨论。这是否有效还没有定论,但这将是一个很好的解决方案。更多信息:

我不想使用其他序列化机制,因为我已经为JDO注释了所有内容。此外,由于JDO使用延迟加载和“字节码增强”,我不确定是否可以在同一个类上使用其他机制而不会发生冲突。JDO注释和字节码增强不会阻止序列化。事实上,他们非常努力地让您的类远离数据层使用。无论哪种方式,都没有用于获取某种序列化形式的java对象的JDO API。GAE跟踪器上有一个功能请求,用于提供一个接口,将JDO对象转换为低级数据存储实体(可使用协议缓冲区序列化):