提问人:Saeed Noshadi 提问时间:11/18/2023 更新时间:11/18/2023 访问量:27
SQLDelight 不支持布尔值
Boolean value is not supported in SQLDelight
问:
我想在SQLDelight中保存一个布尔值,但是当我运行应用程序时,我从导入布尔值中收到此错误:“未解析的引用:布尔值”。我该如何解决? 我使用 SQLDelight = 2.0.0
这是我共享的模块gradle:
plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.androidLibrary)
alias(libs.plugins.serializationPlugin)
alias(libs.plugins.sqlDelightPlugin)
}
kotlin {
iosX64()
iosArm64()
iosSimulatorArm64()
androidTarget {
compilations.all {
kotlinOptions {
jvmTarget = "1.8"
}
}
}
jvm()
sourceSets {
commonMain.dependencies {
implementation(libs.coroutines)
// implementation(libs.ktor.server.core)
// implementation(libs.ktor.server.tests)
implementation(libs.ktor.client.core)
implementation(libs.ktor.client.content.negotiation)
implementation(libs.ktor.serialization)
implementation(libs.dateTime)
}
androidMain.dependencies {
implementation(libs.sqlDelight.android.driver)
}
iosMain.dependencies {
implementation(libs.sqlDelight.native.driver)
}
}
}
sqldelight {
databases {
create("AppDatabase") {
packageName.set("org.sn.spacexkmp.shared.cache")
}
}
}
android {
namespace = "org.sn.spacexkmp.shared"
compileSdk = libs.versions.android.compileSdk.get().toInt()
defaultConfig {
minSdk = libs.versions.android.minSdk.get().toInt()
}
}
这是我的 Query sq 文件:
CREATE TABLE Launch (
flightNumber INTEGER NOT NULL,
missionName TEXT NOT NULL,
details TEXT,
launchSuccess INTEGER AS Boolean DEFAULT NULL,
launchDateUTC TEXT NOT NULL,
patchUrlSmall TEXT,
patchUrlLarge TEXT,
articleUrl TEXT
);
insertLaunch:
INSERT INTO Launch(flightNumber, missionName, details, launchSuccess, launchDateUTC, patchUrlSmall, patchUrlLarge, articleUrl)
VALUES(?, ?, ?, ?, ?, ?, ?, ?);
removeAllLaunches:
DELETE FROM Launch;
selectAllLaunchesInfo:
SELECT * FROM Launch;
例如,如果我将此值更改为 INTEGER,则错误已修复 launchSuccess INTEGER AS Boolean DEFAULT NULL,
答:
1赞
Murtaza
11/18/2023
#1
我们在整数类型中没有 NULL 值,而不是使用 0 作为默认值。
https://cashapp.github.io/sqldelight/1.5.4/js_sqlite/types/
CREATE TABLE Launch (
flightNumber INTEGER NOT NULL,
missionName TEXT NOT NULL,
details TEXT,
launchSuccess INTEGER AS Boolean DEFAULT 0,
launchDateUTC TEXT NOT NULL,
patchUrlSmall TEXT,
patchUrlLarge TEXT,
articleUrl TEXT
);
评论
0赞
Saeed Noshadi
11/18/2023
不工作。错误来自 SQLDelight 生成的 DatabaseQueries 和生成的 DataModel 类
0赞
Murtaza
11/18/2023
尝试使用Sqlite,既简单又精彩
评论