Буферы протокола с JPA

В настоящее время я создаю P2P-систему, которая использует буферы протокола для всего обмена данными между одноранговыми узлами. Также есть несколько централизованных частей системы, где одноранговые узлы общаются с сервером. Сервер использует JPA для хранения данных о партнерах.

Таким образом, клиенты имеют данные в сообщениях протокольных буферов, а сервер - в JPA-объектах. Поэтому у меня вопрос, есть ли способ автоматического преобразования между ними?

Я ищу:

  • Генератор JPA-сущностей из .protos-файлов ИЛИ
  • Генератор .protos-файлов из JPA-сущностей И
  • Какой-то способ автоматического преобразования между ними во время выполнения, поэтому мне не нужно создавать код, чтобы делать это вручную для каждого нового класса.

В идеале вы могли бы сделать еще один шаг и сделать так, чтобы они оба были одними и теми же классами (то есть буферами протокола с аннотациями JPA), но если это недостижимо, вышеуказанное также будет работать.

Было ли это сделано, и если нет, как вы думаете, возможно ли это реализовать в разумные сроки?


person Yrlec    schedule 18.07.2009    source источник
comment
Я бы тоже хотел такого. В частности, возможность генерировать .proto файлы из класса JPA на основе его аннотаций. Другие функции (создание сущностей JPA из файлов .proto, автоматическое преобразование из одного в другой) менее важны. Одним из вариантов является использование решения XML / XSLT, но оно по-прежнему включает два артефакта разработки, которые необходимо поддерживать параллельно. Мне нужно решение, которое способно построить обе вещи, используя только один артефакт разработки.   -  person aroth    schedule 27.06.2011


Ответы (1)


arrow_upward
1
arrow_downward

API буферов протокола Java хочет сгенерировать классы. Так что, кажется, было бы трудно затем аннотировать их. Вместо этого вы можете начать со своей собственной «схемы» XML, а затем иметь таблицы стилей XSLT, которые:

  1. Создает файл .proto
  2. Создает XML-файл сопоставления сущностей JPA.

Затем вы можете использовать файлы, сгенерированные Google, с JPA.

person Dave    schedule 08.12.2009