JPA 和 Kotlin Null 安全

JPA and Kotlin Null Safety

提问人:Martin 提问时间:9/12/2023 更新时间:9/12/2023 访问量:50

问:

我有一个 with 两个字段,这两个字段在对象模型上都已定义(a 和 an )。在数据库中,我为此添加了两个可为 null 的列,因为我希望 Embeddable 本身是可选的 ()。这似乎按预期工作。@Embeddablenon-nullableStringOffsetDateTimenullable

现在,我试图通过将数据库中的列设置为并期望 Kotlin 在从数据库加载对象时引发错误来强制错误。有趣的是,这并没有发生。当实体被转换为 a(两个字段也被定义为 )时,被抛出,但在我看来有点太晚了。StringnullNullPointerExceptionDTOnon-nullableNullPointerException

在调试器中观察这一点,我可以看到实体中的字段确实是 ,即使 Kotlin 的 null 安全功能应该禁止这样做。Stringnull

我错过了什么?

kotlin jpa nullpointerexception kotlin-null-safety

评论

5赞 Jorn 9/12/2023
使用反射会抛弃 Kotlin 的所有零安全性。而且由于 JPA(取决于实现)是为 Java 编写的,而不是为 Kotlin 编写的,因此它甚至可能不知道这些检查。也许您可以添加一个库来将该功能添加到 JPA,或者您可以使用专门为 Kotlin 编写的持久性 API。

答: 暂无答案