Как использовать аннотации JPA в котлин / мультиплатформенном проекте? - PullRequest
0 голосов
/ 05 апреля 2019

Я хочу реализовать проект, используя 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 еще не поддерживает наследование аннотаций.

Должен ли я воздерживаться от использования функции класса данных и использовать наследование, или есть более элегантный способ?

1 Ответ

0 голосов
/ 06 апреля 2019

Я думаю, что в целом классы моделей не должны использоваться несколькими приложениями, за исключением того, что приложения используют один и тот же источник данных.

Если вы хотите обмениваться структурами данных между сервером и веб-приложением, я бы предложил создать DTO классы специально для этого.

Объект передачи данных - это объект, который используется для инкапсуляции данных и отправки их из одной подсистемы приложения в другую.

...