, bsts: Int)
91 def toABRow(raw: (Int,Int,Int,Int)) = ABRow(raw._1,raw._3,raw._4)
92
93 import com.bayakala.funda.rowtypes.DataRowType.FDADataRow
94
95 val loader = FDADataRow(slick.driver.H2Driver, toABRow _)
96 loader.getTypedRows(selectAB.result)(db).foreach {dataRow =>
97 println(s"ID:${dataRow.id} Status A = ${dataRow.asts}, B = ${dataRow.bsts}")
98 }
99
100 import com.bayakala.funda.rowtypes.ActionType.FDAAction
101 def updateAStatus(row: ABRow): FDAAction[Int] = {
102 tableA.filter{r => r.id === row.id}
103 .map(_.status)
104 .update(row.bsts)
105 }
106
107
108 loader.getTypedRows(selectAB.result)(db).map(updateAStatus(_)).foreach {
109 actionRow =>
110 println(s"${actionRow.toString}")
111 }
112
113 def execAction(act: FDAAction[Int]) = db.run(act)
114
115 loader.getTypedRows(selectAB.result)(db)
116 .map(updateAStatus(_))
117 .map(execAction(_))
118
119 loader.getTypedRows(selectAB.result)(db).foreach {dataRow =>
120 println(s"ID:${dataRow.id} Status A = ${dataRow.asts}, B = ${dataRow.bsts}")
121 }
122
123 }
|