Да, это возможно.Используйте протобуф конвертеры.Проверка: https://github.com/BAData.
Преобразование объекта домена в Protobuf:
ProtoObject protoObject =
Converter.create().toProtobuf(ProtoObject.class, domainObject);
Преобразование объекта Protobuf в объект домена:
DomainObject domainObject = Converter.create().toDomain(DomainObject.class, protoObject)
Ваш класс домена должен быть аннотирован @ProtoClass, указывая протокласс, которому вы хотите сопоставить класс домена.Пример:
@ProtoClass(ProtoObject.class)
Class DomainClass{
@ProtoField
private String field1;
@ProtoField(name = "xyz") // in case proto and domain class field have different names
private String field2;
}
Я использовал это, и он довольно прост в использовании и экономит много усилий.