ctripcorp / SQLlin

A DSL ORM library for Kotlin Multiplatform.
Apache License 2.0
219 stars 10 forks source link

功能建议:可否添加 查询结果 采用Flow返回 #70

Closed Matcha-xiaobin closed 6 months ago

Matcha-xiaobin commented 6 months ago

可否添加 查询结果 采用Flow返回 jetpack Room就支持这个,感觉还蛮好用的。

qiaoyuang commented 6 months ago

设计理念不同,SQLlin 中每次 database 作用域展开可以构建并执行多条 SQL 语句,而唯一需要获取结果的查询语句可自由穿插其中,无法用一个泛型 Flow 返回多种不同类型的查询结果。Room 的设计是调用一次函数就执行一条语句,因此易于使用 Flow 保存结果,并交给用户订阅获取。此外,基于中缀函数和作用域函数构建的 DSL 与链式调用本来就不是一个风格,在 DSL 块后面进行 Flow 的链式调用在代码风格上并不是一个好选择,目前你可以使用 flow {} 函数包裹 DSL 块,获取 flow 对象后再进行链式调用,这样代码风格更佳。因此现阶段 SQLlin 不是很有内置转换成 Flow 的必要。