提起映射afterCreate afterSave前
-
26-09-2019 - |
题
你知道为什么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产品中非常普遍。
不隶属于 StackOverflow