使用JPA的协议缓冲区

8
我目前正在构建一个P2P系统,该系统使用协议缓冲区来处理对等方之间的所有通信。系统中还有一些集中化部分,对等方与服务器进行通信。服务器使用JPA来存储其拥有的关于对等方的数据。
因此,客户端的数据实际上是以协议缓冲区消息的形式存在的,而服务器则以JPA实体的形式存在。因此我的问题是是否有一种方法可以自动在它们之间进行转换?
我要找的是:
1. 从.proto文件生成JPA实体的生成器 OR 2. 从JPA实体生成.proto文件的生成器 AND 3. 在运行时自动在它们之间进行转换,这样我就不必为每个新类手动创建代码。
理想情况下,您可以更进一步,使它们成为相同的类(即带有JPA注释的协议缓冲区),但如果这不可行,则以上内容也可以工作。
这是否已经完成了?如果没有,您认为在合理的时间内实现这一点是否可行?

我也想要这样的东西。特别是,能够根据JPA类的注释生成.proto文件的能力。其他功能(从.proto文件生成JPA实体,自动转换)不那么关键。使用XML / XSLT解决方案是一种选择,但仍涉及必须并行维护两个开发工件。我希望有一个解决方案,能够只使用单个开发工件构建这两个东西。 - aroth
1个回答

2
Java Protocol Buffers API希望生成类。因此,似乎很难对其进行注释。相反,您可以从自己的XML“模式”开始,然后使用XSLT样式表执行以下操作:
  1. 创建.proto文件
  2. 创建JPA实体映射XML文件。
然后,您可以将Google生成的文件与JPA一起使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接