如何在 kotlin/multiplatform 项目中使用 JPA 注解?
How to use JPA annotations in a kotlin/multiplatform project?
我想使用 kotlin/multiplatform 实现一个项目,该项目由 jvm 后端和 js 网络应用程序组成。结构将是这样的:
root
|- webapp (kotlin/js using kotlin-react)
|- shared (kotlin/multiplatform for shared data)
|- server (kotlin/jvm using micronauts)
应用程序使用的数据 classes 属于共享项目,但要使用 jpa,我需要 jvm-annotations。
一个解决方案是不使用 kotlin data-classes 并在 jvm 中继承。我还尝试使用实验性的 @OptionalExpectation
来实现 jpa 注释,但自此之后无处可去:
- 它们在与
typealias
一起使用时需要非注释类型,而 @OptionalExpectation
无法实现。
- 让 multiplatform-annotations 从 multiplatform-annotations 继承是不可能的,因为 kotlin 还不支持注释继承。
我应该避免使用 data-class 功能并使用继承还是有更优雅的方式?
我认为一般模型 类 不应该在不同的应用程序之间共享,其中一个例外是使用相同数据源的应用程序。
如果您想在服务器和 Web 应用程序之间共享数据结构,我建议您专门为此创建 DTO 类。
A Data Transfer Object is an object that is used to encapsulate data, and send it from one subsystem of an application to another.
我想使用 kotlin/multiplatform 实现一个项目,该项目由 jvm 后端和 js 网络应用程序组成。结构将是这样的:
root
|- webapp (kotlin/js using kotlin-react)
|- shared (kotlin/multiplatform for shared data)
|- server (kotlin/jvm using micronauts)
应用程序使用的数据 classes 属于共享项目,但要使用 jpa,我需要 jvm-annotations。
一个解决方案是不使用 kotlin data-classes 并在 jvm 中继承。我还尝试使用实验性的 @OptionalExpectation
来实现 jpa 注释,但自此之后无处可去:
- 它们在与
typealias
一起使用时需要非注释类型,而@OptionalExpectation
无法实现。 - 让 multiplatform-annotations 从 multiplatform-annotations 继承是不可能的,因为 kotlin 还不支持注释继承。
我应该避免使用 data-class 功能并使用继承还是有更优雅的方式?
我认为一般模型 类 不应该在不同的应用程序之间共享,其中一个例外是使用相同数据源的应用程序。
如果您想在服务器和 Web 应用程序之间共享数据结构,我建议您专门为此创建 DTO 类。
A Data Transfer Object is an object that is used to encapsulate data, and send it from one subsystem of an application to another.