【问题标题】:How to use JPA annotations in a kotlin/multiplatform project?如何在 kotlin/多平台项目中使用 JPA 注释?
【发布时间】:2019-04-05 10:16:15
【问题描述】:

我想使用 kotlin/multiplatform 实现一个项目,该项目由 jvm 上的后端和 js 中的 web-app 组成。结构是这样的:

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 尚不支持注解继承,因此无法让多平台注解继承自多平台注解。

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

【问题讨论】:

    标签: jpa kotlin kotlin-multiplatform


    【解决方案1】:

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

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

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

    【讨论】:

    • 似乎这是唯一的方法,但由于我们的数据访问对象很可能包含与将要传输的数据相同的数据,我希望在多次键入相同定义时节省。
    猜你喜欢
    • 1970-01-01
    • 2020-05-04
    • 2020-09-05
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 2020-12-02
    • 1970-01-01
    相关资源
    最近更新 更多