Frage

Wissen Sie, warum nach dem Erstellen des Objekts nach dem Erstellen des Objekts nicht aufgerufen werden? Schauen Sie sich diesen Code an:

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

Was produziert:

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

Das Firmenmodell sieht so aus:

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")
}

Vielen Dank im Voraus, Etam.

War es hilfreich?

Lösung

Der "Lebenszyklus", auf den die Rückrufe verwiesen werden, ist die Datenbank Persistenz -Lebenszyklus. In diesem Fall ist das Erstellen, auf das bezeichnet wird, die tatsächliche Erstellung oder Einfügung des Objekts in der Datenbank. Ebenso beziehen sich das vor- und Nachupdate auf den Moment vor und nach einer Update -Anweisung an die Datenbank.

Wenn Sie die Erstellung des Objekts nutzen müssen, können Sie dies durch die normalen Skala -Mechanismen eines Konstruktors oder einer Fabrik tun, um die Objekte zu erstellen.

Ich bin zwar einverstanden, dass es sich um eine Fehlbezeichnung handelt, aber es ist eine Fehlbezeichnung, die in den verschiedenen existierenden Orm -Produkten sehr häufig ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top