Spring 数据 JDBC - Kotlin 支持 - 需要 属性 未找到 class
Spring Data JDBC - Kotlin support - Required property not found for class
我正在尝试将 Spring Data JDBC 与 Kotlin data-classes 一起使用,并且在将 @Transient
属性 添加到主构造函数后我简单 findById
调用收到错误:
java.lang.IllegalStateException: Required property transient not found for class mitasov.test_spring_data_with_kotlin.Entity!
我的实体 class 如下所示:
data class Entity(
@Id
var id: String,
var entityName: String,
@Transient
var transient: List<TransientEntity>? = mutableListOf(),
)
阅读 that issue 后,我尝试在没有 @Transient
字段的情况下制作 @PersistenseConstructor
:
data class Entity(
@Id
var id: String,
var entityName: String,
@Transient
var transient: List<TransientEntity>? = mutableListOf(),
) {
@PersistenceConstructor
constructor(
id: String,
entityName: String,
) : this(id, entityName, mutableListOf())
}
但这对我没有帮助,我仍然遇到该错误。
我该如何解决这个问题?
事实证明,我的第二次尝试就是解决方案。
诀窍在我的 Run/Debug 测试配置中。
在 IDEA 首选项中,我选中了 Preferences | Build, Execution, Deployment | Build Tools | Maven | Runner — Delegate IDE build/run actions to Maven
复选框,这意味着我需要在 运行 测试之前手动重新编译我的项目。
解决方案
所以,就是这样,错误的解决方案
java.lang.IllegalStateException: Required property transient not found for class mitasov.test_spring_data_with_kotlin.Entity!
正在制作 @PersistenseConstructor
没有 @Transient
个字段:
data class Entity(
@Id
var id: String,
var entityName: String,
@Transient
var transient: List<TransientEntity>? = mutableListOf(),
) {
@PersistenceConstructor
constructor(
id: String,
entityName: String,
) : this(id, entityName, mutableListOf())
}
我正在尝试将 Spring Data JDBC 与 Kotlin data-classes 一起使用,并且在将 @Transient
属性 添加到主构造函数后我简单 findById
调用收到错误:
java.lang.IllegalStateException: Required property transient not found for class mitasov.test_spring_data_with_kotlin.Entity!
我的实体 class 如下所示:
data class Entity(
@Id
var id: String,
var entityName: String,
@Transient
var transient: List<TransientEntity>? = mutableListOf(),
)
阅读 that issue 后,我尝试在没有 @Transient
字段的情况下制作 @PersistenseConstructor
:
data class Entity(
@Id
var id: String,
var entityName: String,
@Transient
var transient: List<TransientEntity>? = mutableListOf(),
) {
@PersistenceConstructor
constructor(
id: String,
entityName: String,
) : this(id, entityName, mutableListOf())
}
但这对我没有帮助,我仍然遇到该错误。
我该如何解决这个问题?
事实证明,我的第二次尝试就是解决方案。
诀窍在我的 Run/Debug 测试配置中。
在 IDEA 首选项中,我选中了 Preferences | Build, Execution, Deployment | Build Tools | Maven | Runner — Delegate IDE build/run actions to Maven
复选框,这意味着我需要在 运行 测试之前手动重新编译我的项目。
解决方案
所以,就是这样,错误的解决方案
java.lang.IllegalStateException: Required property transient not found for class mitasov.test_spring_data_with_kotlin.Entity!
正在制作 @PersistenseConstructor
没有 @Transient
个字段:
data class Entity(
@Id
var id: String,
var entityName: String,
@Transient
var transient: List<TransientEntity>? = mutableListOf(),
) {
@PersistenceConstructor
constructor(
id: String,
entityName: String,
) : this(id, entityName, mutableListOf())
}