如何在kotlin / multiplatform项目中使用JPA批注?

时间:2019-04-05 10:16:16

标签: jpa kotlin kotlin-multiplatform

我想使用kotlin / multiplatform实施一个项目,该项目由jvm上的一个后端和js中的一个Web应用程序组成。结构如下:

root
 |- webapp (kotlin/js using kotlin-react)
 |- shared (kotlin/multiplatform for shared data)
 |- server (kotlin/jvm using micronauts)

应用程序使用的数据类属于共享项目,但是要使用jpa,我需要jvm-annotations。

一种解决方案是不使用kotlin数据类并在jvm中继承。我还尝试使用实验性的@OptionalExpectation实现jpa批注,但自那以来没有任何进展:

  • typealias一起使用时,它们需要非注释类型,而@OptionalExpectation则无法实现。
  • 由于kotlin尚不支持注释继承,因此无法从multiplatform-annotations继承multiplatform-annotations。

我应该避免使用数据类功能并使用继承,还是有更优雅的方法?

1 个答案:

答案 0 :(得分:0)

我认为通常不应在不同的应用程序之间共享模型类,但例外之一是使用相同数据源的应用程序。

如果要在服务器和Web应用程序之间共享数据结构,我建议为此专门创建DTO类。

  

数据传输对象是用于封装数据并将其从应用程序的一个子系统发送到另一个子系统的对象。