【问题标题】:Kotlin data class with spring jpa带有 spring jpa 的 Kotlin 数据类
【发布时间】:2021-05-26 10:15:17
【问题描述】:

我已经阅读了 kotlin 的 spring 指南,它说不推荐 JPA 的数据类

但是在看到一些使用 JPA 数据类的教程和视频后,我很困惑

spring有没有找到处理新版本中数据类的方法?

【问题讨论】:

  • 需要注意的一点是 Kotlin 数据类是最终的,不能被继承。在某些情况下,此限制不合适

标签: kotlin spring-data-jpa data-class


【解决方案1】:

我们使用 Spring 和 Kotlin 开发了多个服务,并使用了数据类,例如实体。这工作正常,并导致少得多的样板。但是,您确实需要使用这些构建选项/依赖项来配置您的项目,以避免 Spring 互操作性问题:

https://kotlinlang.org/docs/all-open-plugin.html

【讨论】:

    【解决方案2】:

    您可以将 Kotlin 用于 Spring Data 实体。这适用于所有 Spring Data 模块,包括 JPA,其中 Spring Data 不是执行映射的模块,而是您的 JPA 实现。

    问题在于,所涉及的所有库都是主要考虑 Java 开发的,而 Kotlin 开发时并没有考虑到 Hibernate 或 Spring Data。因此必然会出现问题。 例如,Kotlin 确实会生成很多普通用户看不到的东西,比如特殊的构造函数。但这对于反射来说是可见的,所以过去我们遇到过这样的情况,开发人员只能看到一个构造函数,但 Spring Data 看到了多个构造函数,无法决定使用哪一个。

    所以你可以使用 Kotlin,但特别是当下一个 Kotlin 版本发布很长时间时,你可能会遇到一些额外的痛苦。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-06
      • 2020-07-31
      • 2018-10-12
      • 1970-01-01
      • 2020-02-24
      • 2022-08-18
      • 2017-02-20
      • 2014-09-02
      相关资源
      最近更新 更多