簡體   English   中英

在scalikejdbc中尋找嵌套groupBy中的幫助嗎?

[英]Looking for help in Nested groupBy with scalikejdbc?

我正在使用Scala 2.12,並需要通過build.sbt下載所需的庫。

我的數據庫輸出格式如下。 在此輸入圖像描述

基本上,就像每個評估日期和賬簿一樣,可以有多個貨幣數據。

我在書上(主要是)進行分組,其中將包含基於貨幣的Pnl數據列表。

只是粗略的表述:

{ Bookid: 1234,
  BookName: EQUITY,
  PnlBreakdown: [currency: cad, actual_pnl_local: 100, actual_pnl_cde: 100], [currency: usd, actual_pnl_local: 100, actual_pnl_cde: 130]
}

基本上。 密鑰將是book,值將是pnl數據列表。

我有一個案例類定義如下:

case class PnlData(valuation_date: Option[String], currency: Option[String],pnl_status: Option[String],actual_pnl_local: Option[String] ,actual_pnl_cde: Option[String], actual_pnl_local_me_adj: Option[String] ,actual_pnl_cde_me_adj: Option[String] ) {
  override def toString():String= {
    s"valuation_date=$valuation_date,currency=$currency,pnl_status=$pnl_status,actual_pnl_local=$actual_pnl_local,actual_pnl_cde=$actual_pnl_cde,actual_pnl_local_me_adj=$actual_pnl_local_me_adj,actual_pnl_cde_me_adj=$actual_pnl_cde_me_adj"
  }
}

case class BookLevelDaily(book_id: Option[String], book: Option[String], pnlBreakdown: List[SaPnlData]){
  override def toString():String= {
    s"book_id=$book_id,book=$book,pnl=$pnlBreakdown"
  }
}

基本上,我的最終對象是BookLevelDaily類型。

如何將數據庫輸出(上方)轉換為BookLevelDaily對象?

我可以將整個結果轉換為列表,但是進一步該如何做groupBy?

val list: List[BookLevelDaily] =
      sql"""
           |SELECT QUERY TO GET ABOVE RESULTSET
        """.stripMargin.map(rs =>
        BookLevelDaily(
          valuation_date = rs.stringOpt("valuation_date"),
          book_id = rs.stringOpt("book_id"),
          book =  rs.stringOpt("book"),
          currency=  rs.stringOpt("currency"),
          pnl_status=  rs.stringOpt("pnl_status"),
          actual_pnl_local=  rs.stringOpt("actual_pnl_local"),
          actual_pnl_cde=  rs.stringOpt("actual_pnl_cde"),
          actual_pnl_local_me_adj= rs.stringOpt("actual_pnl_local_me_adj"),
          actual_pnl_cde_me_adj= rs.stringOpt("actual_pnl_cde_me_adj")
        )
      ).list().apply()

首先,以上不是BookLevelDaily類型。 因此,如何迭代或分組以分離Pnl級數據並將其映射到鍵(書)。

如果我正確理解,似乎是一對多的關系(一個:book_level_daily,許多:pnl_breakdown)。 如果是這樣,請檢查以下文檔。

http://scalikejdbc.org/documentation/one-to-x.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM