首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Anorm多值支持无效

Anorm多值支持无效
EN

Stack Overflow用户
提问于 2015-02-12 07:39:30
回答 1查看 203关注 0票数 0

Anorm的多值支持有一个奇怪的问题,当我使用用Seq编写的文档时,我的查询不会返回任何内容。以下是我的疑问:

控制器

代码语言:javascript
复制
def checkStock(data: Recap): Boolean =  DB.withConnection { implicit conn =>
    var so_id_list: Set[String] = Set()
    for(ls <- data.recap_items){
        for(rs <- ls.invoice_items){
            so_id_list = so_id_list ++ Set(rs.id.toString)
        }
    }
    breakable{
        play.api.Logger.info(so_id_list.toSeq.toString)
        //return ArrayBuffer(4, 5)
        val result = Sales_Order.getSO_detailbyIDlist(so_id_list.toSeq)
        play.api.Logger.info(result.toString)
        //return List()
    }
}

模型

代码语言:javascript
复制
def getSO_detailbyIDlist(so_id_list: Seq[String]):List[SO_detail] = DB.withConnection{ implicit c =>
    SQL("""SELECT detailso.sur_key, detailso.so_id AS so_id, detailso.product_id, detailso.qty, product.name, detailso.unit_name, detailso.unit_multiplier, detailso.price, detailso.discount, detailso.contract, COALESCE(rs.left_qty, 0) AS left_qty
        FROM detailso
        LEFT JOIN product ON detailso.product_id = product.id
        LEFT JOIN (SELECT Product.id, COALESCE(SUM(StockCard.left_qty), 0) as left_qty
                  FROM Warehouse_Product
                  LEFT JOIN Product ON Product.id = Warehouse_Product.product_id
                  LEFT JOIN Warehouse ON Warehouse.id = Warehouse_Product.warehouse_id
                  LEFT JOIN StockCard ON Stockcard.warehouse_product_id = Warehouse_Product.id
                  WHERE Warehouse.id = '110' AND StockCard.status = 1
                  GROUP BY id) rs ON rs.id = product.id
        WHERE detailso.so_id IN ({so_id_list})
        GROUP BY detailso.sur_key""").on('so_id_list -> so_id_list).as(SO_detailParser *)
}

如果我将IN查询更改为手动IN (4,5),那么它将按预期返回。你知道为什么我的多重价值不起作用吗??

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-12 08:47:11

您可以通过从SBT项目中删除Play提供的依赖常数anorm,并添加完全限定/独立依赖关系,将Anorm升级到2.3。

代码语言:javascript
复制
libraryDependencies ++= Seq( "com.typesafe.play" %% "anorm" % "2.3.7")
//2.3.7 is just an example, you can change it to any other version 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28471868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档