Я хочу реализовать проект, используя kotlin / multiplatform, состоящий из серверной части на jvm и веб-приложения на js. Структура будет выглядеть так:
root
|- webapp (kotlin/js using kotlin-react)
|- shared (kotlin/multiplatform for shared data)
|- server (kotlin/jvm using micronauts)
Классы данных, используемые приложениями, принадлежат общему проекту, но для использования jpa мне нужны jvm-аннотации.
Решением было бы не использовать классы данных kotlin и наследовать в jvm. Я также попытался реализовать аннотации jpa, используя экспериментальный @OptionalExpectation
, но это не сработало, так как:
- им требуются типы без аннотаций при использовании с
typealias
, которые не могут быть реализованы с @OptionalExpectation
.
- пусть мультиплатформенные аннотации наследуются от мультиплатформенных аннотаций, это невозможно, так как kotlin еще не поддерживает наследование аннотаций.
Должен ли я воздерживаться от использования функции класса данных и использовать наследование, или есть более элегантный способ?