我正在尝试使用带有Kotlin和SQLite后端的requery https://github.com/requery/requery库。我有一个sql转储,我想在第一次启动应用程序时写入sqlite数据库,然后我想用requery将数据类映射到数据库实体。 这是使用表创建的数据源初始化:
if (!(DataStorage.isDbInitialized(context))) {
val db = writableDatabase
val inputStream = context?.resources?.openRawResource(R.raw.dump)
val reader = BufferedReader(InputStreamReader(inputStream))
val builder = StringBuilder()
var line : String?
var end = false
while (!end) {
line = reader.readLine()
if(line == null) {
end = true
} else {
builder.append(line)
}
}
db.execSQL(builder.toString())
onCreate(db)
DataStorage.setDbInitialized(context)
}
我必须从SqlitexDatabaseSource和CommonDataSource派生此类以与Kotlin一起使用。 SQL查询已成功执行,但是当我尝试从数据库中选择所有对象时,此请求将返回零大小的列表:
val result : Result<Feat> = (application as MainApp).dataStore.select(Feat::class).get()
result.each {
Log.d("TAG", it.name)
}
如文档中所述创建DTO:
是否可以使用sql dump初始化requery数据,或者我必须为每一行创建DTO并通过insert方法提交它?