将光滑更新推广到N列

时间:2016-04-29 15:51:50

标签: scala slick slick-2.0

我创建了一个通用方法来更新Slick表中列的值。我的所有表都来自具有id的共同特征,所以很容易想出这样的东西:

  def update[T](id: Long, targetColumnSelector: SimpleTable => Column[T], value: T): Boolean = {
    db.withSession {
      self.filter(_.id === id).map(targetColumnSelector).update(value) > 0
    }
  }

并像这样调用:

MyTable.update(obj.id, _.field, fieldValue)

现在我想概括一下,一次更新多个列。它很容易为2列,但如何使它,以便我可以使用任何大小的元组?我正在使用Slick 2.0

  def updateTuple[B, C](id: Long, targetColumnSelector: SimpleTable => (Column[B], Column[C]), value: (B, C)): Boolean = {
    db.withSession {
      self.filter(_.id === id).map(targetColumnSelector).update(value) > 0
    }
  }

0 个答案:

没有答案