当前位置: 首页 > 知识库问答 >
问题:

如何在kot Lin/多平台项目中使用JPA注释?

罗法
2023-03-14

我想使用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注释。

一种解决方案是不使用kotlin数据类并在jvm中继承。我还尝试使用实验性的<code>@optionalExpection

  • 当与typealias一起使用时,它们需要非注释类型,而这不能用@optionalExpection
  • 让多平台注释继承多平台注释是不可能的,因为kotlin还不支持注释继承

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

共有1个答案

胡光霁
2023-03-14

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

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

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

 类似资料:
  • IntelliJ IDEA 2018.2.3(Community Edition)中的Kotlin多平台模板在中依赖于JUnit 4.12,用于项目的JVM部分: 值得注意的是,我使用的是Gradle4.10(一些较旧的示例使用,它从Gradle4.6起就被弃用了)。关于如何设置的文档已经过时并且稀少: 如上所示,IntelliJ中构建的默认项目模板不使用JUnit 5。 JUnit团队提供了示例

  • 我使用的是IntelliJ IDEA多平台项目,jsTest Gradle任务不检测任何测试。jvmTest测试运行没有问题。当我使用调试输出运行jsTest任务时,我可以看到任务运行并立即完成。 Gradle版本4.10.1。科特林版本1.3.0-eap。 如何纠正Gradle配置,或者我可以运行什么命令,以便实际检测到测试,并且(如所写)失败? build.gradle: test-proje

  • 我在设置一个活动时遇到了问题,该活动驻留在KMM项目中的共享代码中,并使用Jetpack Compose。当活动是在Android源代码(/app)中时,这个操作很好。但我想发布一个共享的(/common)库,而不需要任何应用程序。 null 进程:com.surrus.peopleinspace,pid:4067 java.lang.nosuchmethoderror:没有静态方法setcont

  • 最近,我将我的KMP项目分为fullstack项目和核心库(主要由公共数据类组成),并发现我需要在公共模块中定义的一个数据类上使用JVM库中的注释。 在Kotlin公共代码中似乎不可能使用Java库中的注释。 解决此类问题的可能方法是什么,最好避免通过声明此类数据类,然后在平台中重复其实现,但使用不同的注释?

  • 报告工作的groovy代码是: 这将如何翻译成Kotlin DSL?我尝试了许多变体,其中一些编译和运行,但不创建所需的输出。可运行的罐子。

  • 我找到了一个符合我目的的图书馆,但它是写在Kotlin上的。我可以在Java项目中使用它吗? 框架:https://github.com/mpetlyuk/initial_tips Kotlin上的用法: