你知道为什么afterCreate方法创建的对象后,不会调用?看看这个代码:

val c = Company.create
println(">>> After create")
c.save

哪些生产:

c: com.subeli.officebook.model.Company = 0
>>> After create
create packages
create packages
save packages

公司模型看起来像这样:

object Company extends Company with LongKeyedMetaMapper[Company] with CRUDify[Long, Company] {
  override def dbTableName = "company"

  override def beforeCreate = createPackages _ :: super.beforeCreate
  override def afterCreate = createPackages _ :: super.afterCreate
  override def afterSave = savePackages _ :: super.afterSave
  override def afterUpdate = savePackages _ :: super.afterUpdate

  private def createPackages(c: Company): Unit = println("create packages")
  private def savePackages(c: Company): Unit = println("save packages")
}

在预先感谢 艾格。

有帮助吗?

解决方案

在“生命周期”正由回调称为是数据库的持久性生命周期。所以,在这种情况下,创建一个被称为是实际的创作,或INSERT,在数据库中的对象。同样地,更新前和更新后参考时刻之前和更新语句被发送到数据库之后。

如果您需要进军创建的对象,你可以通过构造函数或一些工厂来创建对象的正常斯卡拉机制。

虽然我同意,这是有点用词不当,这是用词不当是整个存在的各种ORM产品中非常普遍。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top