kodeindb错误,无法在我的ViewModel中访问我的数据对象
我有一个数据类存储在数据库中。
@kotlinx.serialization.Serializable
data class SavedCalculation(
override val id: String,
val model1: Model1,
val model2: Model2
):org.kodein.db.model.orm.Metadata {
}
@kotlinx.serialization.Serializable
data class Model1(
var attr1: String = "",
var attr2: String = "",
)
@kotlinx.serialization.Serializable
data class Model2(
var attr1: String = "",
var attr2: String = "",
)
如果我在视图模型中调用 saveCalculation 对象;
var saved = mutableStateOf<List<SavedCalculation>>(listOf())
private set
fun load(){
viewModelScope.launch {
useCases.load.invoke().collect { response ->
when(response){
is Response.Loading -> {
}
is Response.Success -> {
saved.value = response.data
saved.value[0].model1 -> **this causes error.**
}
is Response.Error -> {}
}
}
}
}
错误:
无法访问“org.kodein.db.model.orm.HasMetadata”,它是“com.myapp.data.model.SavedCalculationDto”的超类型。检查模块类路径是否缺少或冲突的依赖项
i have a data class for store in db.
@kotlinx.serialization.Serializable
data class SavedCalculation(
override val id: String,
val model1: Model1,
val model2: Model2
):org.kodein.db.model.orm.Metadata {
}
@kotlinx.serialization.Serializable
data class Model1(
var attr1: String = "",
var attr2: String = "",
)
@kotlinx.serialization.Serializable
data class Model2(
var attr1: String = "",
var attr2: String = "",
)
if i call my savedCalculation object in my view model;
var saved = mutableStateOf<List<SavedCalculation>>(listOf())
private set
fun load(){
viewModelScope.launch {
useCases.load.invoke().collect { response ->
when(response){
is Response.Loading -> {
}
is Response.Success -> {
saved.value = response.data
saved.value[0].model1 -> **this causes error.**
}
is Response.Error -> {}
}
}
}
}
Error:
Cannot access 'org.kodein.db.model.orm.HasMetadata' which is a supertype of 'com.myapp.data.model.SavedCalculationDto'. Check your module classpath for missing or conflicting dependencies
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我的主包和数据包是单独的 gradle 构建文件,因此 kodeindb 无法从我的视图模型访问依赖项。
我只需在 build.gradle.kts 中添加相同的 kodeindb 依赖项,我的问题就解决了。
my main and data packages are seperate gradle build files, so kodeindb cant access dependencies from my view model.
i simply add same kodeindb dependencies in my build.gradle.kts, my problem solved.