New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
请问在sql dsl 里怎么聚合数据? #383
Comments
先把每条记录查询出来转换成实体对象,然后再用kotlin的方法去进行聚合
|
这样写的话,到最后一个map,OrderDetails的信息就没有了 |
第一次查询: val orders = database.orders.filter { xxx }.toList() 第二次查询: val orderIds = orders.map { it.id }
val orderDetails = database.orderDetails.filter { it.orderId.inList(orderIds) }.groupBy { it.orderId } 组装数据: val results = orders.map { order ->
OrderDTO(
orderId = order.orderId,
orderTime = order.orderTime,
goodsList = orderDetails[order.orderId]?.map { it.goodName }
)
} |
能用dsl实现吗?因为还有很多查询条件的判断,测试发现用序列性能不太好 |
序列的底层实现是一样的,不存在性能不好的问题 |
大佬,我想写一个QueryRowSet转Map的扩展函数,这样我这个问题就能用dsl解决了,研究了半天也没写出来,请问可以实现吗? |
是这样的,我知道序列本身肯定不存在性能问题,但是我这个场景用序列的话,一次查询多个订单,每笔订单关联了多个商品id,获取商品图片的话需要通过这个商品id去查商品库,再通过商品库的图片id去文件库查询地址,这样一循环都有几十上百个这样的查询 |
你不会用 |
这是整个的逻辑,请问用序列应该怎么增量查询?有这句 |
|
我提的issue是dsl,你说用序列,我提出用序列在这个场景有性能问题,你就给我关了?? |
我觉得我已经给出解答了:
|
请问我有一个查询订单列表的sql
查询出来的结果是这样的
请问我应该再用什么操作符可以将结果转换成
{ orderNo:xx , orderTime:xxx , goodsList:[ ] }
这样的结构?突然想不通应该怎么写了...
The text was updated successfully, but these errors were encountered: