Я пытаюсь обновить большой проект, который использовал Infinispan 7, до версии 10.1.3.
Я хотел бы использовать новый маршаллер Prostream, но я не понимаю, как можно использовать UUID как ключ кеша, или даже (проще?) Как поле в классе, который я хочу вставить в кеш.
Мой кэш был доступен следующим образом: Map<UUID, Foo> testUUIDAsKey = manager.getCache("t1");
Вот когда пытаясь поместить значение в кэш, infinispan говорит мне, что он не знает, как маршалировать uuid.
Хорошо, поэтому после прочтения документации я попытался перейти к более простому тестовому примеру: Map<String, Bar> testUUIDAsField = manager.getCache("t2");
Здесь у класса Bar есть поле типа UUID, и я попытался использовать процессор аннотаций protostream, который будет автоматически генерировать и создавать файл прото при использовании правильной аннотации.
Но на этот раз процессор аннотаций говорит мне, что класс UUID должен быть создан с использованием доступного конструктора без аргументов.
Я знаю, что protobuf не может управлять UUID, я могу сохранить значение как strin g или сохраняя часть длинных значений 2 в uuid.
Как я могу зарегистрировать маршаллер UUID, который будет использовать String в качестве представления в конце?
И как я могу сообщить аннотацию процессор, что он должен использовать этот маршаллер?
Тогда, как я могу использовать UUID в качестве ключа?
Спасибо.