- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想用 SQLDelight 建模关系,尤其是 一对多关系。
我有 2 张 table :recipe
和 ingredient
.为简单起见,它们看起来像这样:
CREATE TABLE recipe (
id INTEGER NOT NULL PRIMARY KEY,
name TEXT NOT NULL
)
CREATE TABLE ingredient (
recipe_id INTEGER NOT NULL,
name TEXT NOT NULL,
FOREIGN KEY (recipe_id) REFERENCES recipe(id) ON DELETE CASCADE
);
所以我有一个食谱列表,每个食谱可以包含 0-n 个成分。
selectWithIngredients:
SELECT *
FROM recipe
INNER JOIN ingredient ON recipe.id = ingredient.recipe_id
WHERE recipe.id=?;
SQLDelight 为我生成了一个 1:1 的关系文件:
public data class SelectWithIngredients(
public val id: Long,
public val name: String,
public val recipe_id: Long,
public val name_: String,
)
有没有什么好的方法可以用一个生成的函数来检索数据(配方 + 成分列表)?类似于
Rooms 的东西
@Embedded
和
@Relation
注释。
最佳答案
不幸的是,SQLDelight 没有那么精致。它所做的只是为查询的每一行提供一个数据类,如果你想做更复杂的逻辑,比如将一个表映射到另一个表的列表,而不是你需要在 kotlin 中自己做。
例如。有这样的食谱
data class Recipe(val name: String, val ingredients: List<String>)
你可以用你的选择来做到这一点
val rows: List<SelectWithIngredients>
rows.groupBy { it.name }
.map { (recipe, selectRows) ->
Recipe(name, selectRows.map { it.name_ }
}
关于android - SQLDelight 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68632268/
我在 Android 上使用 sqldelight 1.4.1。 如果我想在我的应用程序的第二次迭代中添加表格,我应该将 CREATE TABLE Preset(blabla) 代码放在哪里?如果我把
我正在尝试在 SQLDelight 的表中添加更多列。我做了一个迁移文件 1.sqm .在迁移文件中,它给出了找不到表的错误。 我的 build.gradle.kts: sqldelight {
我想用 SQLDelight 建模关系,尤其是 一对多关系。 我有 2 张 table :recipe和 ingredient .为简单起见,它们看起来像这样: CREATE TABLE recipe
我有一个 KMM 项目并想使用 SqlDelight库,但是当我构建未生成的项目数据库模式和表实体时。 actual class DatabaseDriverFactory(private val c
我们正在处理一些我们有 SQLDelight 数据库和 DBRevisionPhrase 表的项目: CREATE TABLE DbRevisionPhrase ( userId TEXT N
SqlDelight 显然有 Kotlin 协程扩展函数,但我不知道如何实现它们,因为我找不到文档。 我有一个看起来像这样的普通查询: val allItems get() = itemQueri
我正在尝试使用 sqldelight 插入一个项目,但在插入后也返回该项目的 ID。在 sqldelight 中似乎没有办法做到这一点。 我可以在插入后调用类似 SELECT last_insert_
我有一个运行良好的 SqlDelight 数据库。我是这样创建的: Database(AndroidSqliteDriver(Database.Schema, context, DatabaseNam
我们想将我们的 App 从 Room 迁移到 SQLDelight,以便在 iOS 上重用它(它是一个多平台项目)。 然而,我注意到 SQLDelight 比 Room 慢得多。对于某些查询,它慢了大
忽略多平台优势,使用空间比 sqldelight 有什么优势吗? 最佳答案 [2021/04/25 编辑] SQLDelight 现在正式支持 AndroidX Paging3 作为其扩展,因此您可能
我在 Android 应用程序中将数据保存到 sqldelight 1.4 时遇到问题。 我创建了表: CREATE TABLE myTable( id INTEGER NOT NULL PR
在 SqlDelight documentation 中的示例中,SqlDelight 从 HockeyPlayer.sq 文件生成的 HockeyPlayerModel 在抽象类中实现 public
是否可以在纯 Java/Kotlin 模块上使用 SQLDelight JVM 驱动程序,该模块稍后将在 Android 模块上使用? 只是想知道,因为我喜欢将应用程序的持久层放在其 Domain 模
SQLDelight 仍被标记为 Maven 存储库中的实验库 here ,尽管第一个版本似乎是在 2018 年 10 月发布的。 我在 KMM 中制作了一个示例应用程序,我可以在其中插入/删除行,到
SQLDelight 仍被标记为 Maven 存储库中的实验库 here ,尽管第一个版本似乎是在 2018 年 10 月发布的。 我在 KMM 中制作了一个示例应用程序,我可以在其中插入/删除行,到
我正在从事 kotlin 多平台项目。我成功地将几个库添加到了我的 build.gradle(ktor、协程......)。我还将 sqldelight 添加到 common、android 和 io
是否可以配置 sqldelight 为所有的 getter 和 setter 添加前缀? CREATE TABLE foo { bar TEXT } 条形图() -> 获取条形图() 最佳答案 目
我正在尝试在我的应用程序中使用 SqlDelight 数据库。 在我的 DAO 中,我有一个名为 getRecipeById 的函数来查询数据库并返回域模型流(Recipe)。下面是该函数的实现:(注
我尝试将 sqldelight 添加到我的 Kotlin 多平台应用程序中,但 AndroidSqliteDriver 未解析引用。我不明白为什么。 我清除缓存并重新生成所有内容,但它也不起作用。 A
我尝试将 sqldelight 集成到我的 Android/iOS 多平台库项目中,但在同步 gradle 时我遇到了几个 Unresolved 依赖项错误。 ERROR: Unable to res
我是一名优秀的程序员,十分优秀!