问题标签 [sqldelight]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - kotlinx.serialization.SerializationException:找不到类“UnitEntity”(myClassName)的序列化程序
我正在开发一个 Kotlin 多平台项目,但遇到了保存数据库实体对象的问题。当我调用我的 sqldelight dao 类的插入方法时抛出异常
该示例类是生成的实体类
这是 DAO 类:
当我尝试调用该保存方法时,它崩溃并说将该类标记为@Serializable
,我不明白它为什么这么说,因为它是一个生成的类,我无法修改这些类。
这是我如何尝试保存这些实体的片段
图书馆:
这是由生成的实际entities
和保存方法SqlDelight
资源实体类
UnitEntity.class
保存方法
sqldelight - 我可以在同一个项目中将 sqldelight 与不同的数据库一起使用吗?
我想使用 SQLDelight 连接到 SQLite In-Memory 数据库进行测试并连接到 PostgreSQL 服务器进行生产,这种用例可能吗?我怎么能做配置?我是否需要为每个数据库提供 .sq 文件?
android - 与 Room 相比,SQLDelight 性能较慢
我们想将我们的 App 从 Room 迁移到 SQLDelight,以便在 iOS 上重用它(它是一个多平台项目)。然而,我注意到 SQLDelight 比 Room 慢得多。对于某些查询,它慢了大约 10 倍。我使用插入语句进行了一些深入测试,使用 Room 平均需要约 5 毫秒,使用 SQLDelight 平均需要约 25 毫秒。我检查(并调整)查询,使它们完全相同。
我还检查了一些 PRAGMA,发现 SQLDelight 使用 Pragma SYNCHRONOUS=1 (NORMAL) 而 Room 使用 2 (FULL),SQLDelight 使用 JOURNAL_MODE=TRUNCATE 而 Room 使用 WAL。我将 SQLDelight 设置中的这些设置更改为与 Room 相同,并且性能有所提高,但对于上述测试来说仍然约为 20 毫秒。
有谁知道是什么导致了这种差异?任何帮助表示赞赏。
unit-testing - 如何在 KMM 上为 SQLDelight 编写单元测试
我想知道如何在KMM上为SQLDelight编写单元测试。首先,我什至无法正确添加SQLDelight依赖项。
在我添加依赖项然后同步项目后,项目甚至没有构建。有人可以告诉我这是否是添加 sqlite 驱动程序依赖项的正确方法吗?
任何帮助将不胜感激!
android - 使用 SQLDelight 时指定初始数据库版本
我们正在从 Android 平台迁移SQLiteDatabase
/SQLiteOpenHelper
以使用 SQLDelight。我们的第一个公共数据库版本是17
. 默认情况下,SQLDelightSchema
返回1
. version
我能够找到强制version
执行的唯一方法17
是提供一个空的16.sqm
迁移文件。这是执行此操作的正确方法,还是有更好的方法?
android - Sqldelight 1.4 如何在没有主键(id)的情况下插入填充数据生成对象
我在 Android 应用程序中将数据保存到 sqldelight 1.4 时遇到问题。
我创建了表:
在 repo 类中,我有以 myTable 对象作为参数的插入函数
在某些操作中,我尝试创建具有名称但没有 id 的新对象表,因为 id 是自动递增的。我没有找到任何信息如何做到这一点。哪个是最好的解决方案?
- 新建一个类(myTablexpress),参数和数据类(myTable)一样,在repo类的insert函数的参数中使用这个对象,使用这些参数?
- 不在动作类中创建新的 myTable 实例,而是使用插入函数并将字符串值作为参数?
- 创建没有 id 的新类 myTable
并在视图模型中使用参数?
- 他们都没有
谢谢
android-studio - sqldelight Generation 的 Gradle 构建失败,第 17:10 行 - '{' 预期,得到 ':' Android Studio 版本 4.1.2
我正在将一个正常工作的 Android Studio 应用程序转换为 KMM 环境。至此,我有了一个非常简单的 KMM 框架。一旦我添加SQLDelight
到公共包中,我开始在我的构建中收到以下错误。我检查了我能找到的每一个例子,但看不出有什么问题。如果可以的话请帮忙?
这是错误消息:
生成失败;有关详细信息,请参阅生成器错误输出任务:shared:generateAndroidDebugPicturesDBInterface FAILED WARN:已访问注册表项“psi.track.invalidation”,但尚未加载
警告:已访问注册表项“psi.incremental.reparse.depth.limit”,但尚未加载
警告:已访问注册表项“ide.hide.excluded.files”,但尚未加载
C:/Users/pagel/AndroidStudioProjects/DailyNasa/shared/src/commonMain/sqldelight/com/pagetyler/shared/cache/Pictures.sq 行 17:10 - '{' 预期,得到 ':' 17:
任务 ':shared:generateAndroidDebugPicturesDBInterface' 执行失败。生成失败;有关详细信息,请参阅生成器错误输出。`
它无法处理应该用来生成表和查询的 .sq 文件。当它在指定第一个查询标签后遇到文件中的第一个“:”时。这是 .sq 文件脚本。getAllPict:
在指定的第一个查询标签之后构建失败。
这是 .sq 文件
直到第一个错误的新版本。更新 2020-3-5 相同的结果
kotlin-multiplatform - SQLDelight:如何动态创建表?
sq
我看到了我们可以使用这样的文件创建具有固定名称的表的示例
我需要在运行时创建具有任意名称的表,我该如何实现?
UPD
在这种情况下,我似乎必须手动执行所有查询(就像在生成的类中完成的那样)