質問

あなたは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、です。 UPDATE文をデータベースに送信される前と後に同様に、のBeforeUpdateとafterUpdate瞬間を参照します。

あなたがオブジェクトの作成にタップに必要がある場合は、

は、あなたがコンストラクタまたはオブジェクトを作成するためのいくつかの工場の通常のScalaのメカニズムを使用して行うことができます。

私はそれが多少誤称のだということに同意しますが、それが存在し、様々なORM製品全体で非常に一般的である誤った名称である。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top