我在这里使用scala和slick,有一个baserepository负责执行我的类的基本crud操作。 出于设计考虑,我们确实有updatedTime和createdTime列由应用程序处理,而不是由数据库触发器处理。这两个字段都是joda DataTime实例。 这些字段在表中分别由名为HasUpdatedAt和HasCreatedAt的两个traits定义。
trait HasCreatedAt {
val createdAt: Option[DateTime]
}
case class User(name:String,createdAt:Option[DateTime] = None) extends HasCreatedAt
我想知道如何使用反射调用用户复制方法,在数据库插入方法期间更新createdAt值。
@vptron和@kevin-wright评论后的编辑
我有一个像这样的代码库
trait BaseRepo[ID, R] {
def insert(r: R)(implicit session: Session): ID
}
我希望只实现一次插入,同时更新createdAt,这就是我不使用复制方法的原因,否则我需要在每个使用createdAt列的地方都实现它。
copy
方法不是私有的。 - vptheroncopy
,那就是它的用途! - Kevin Wright