2014-02-27 27 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) 
} 
相关问题