2014-02-27 59 views
0

我們有幾個特徵,其字段從數據庫(MySql頂部的Slick)初始化,例如,使用單個數據庫會話在特徵中初始化多個val

trait MyTrait { 
    val field1 = db withSession { Table1.get(id1) } 
    val field2 = db withSession { Table2.get(id2) } 
    val field3 = db withSession { Table3.get(id3) } 
    ... 
} 

我希望能夠用一個會話初始化它們。我可以做類似

trait MyTrait { 
    private val tuple = db withSession { Table1.get(id1) -> Table2.get(id2) -> Table3.get(id3) } 
    val field1 = tuple._1 
    val field2 = tuple._2 
    val field3 = tuple._3 
} 

,但我希望用更少的樣板

回答

2

做到這一點,我認爲這也應該工作? (您可能還可以在單​​個查詢中檢索所有3個ID ...)

private val (field1, field2, field3) = db withSession { 
    Table1.get(id1) -> Table2.get(id2) -> Table3.get(id3) 
} 
相關問題