سؤال

هل تعرف لماذا لا يتم الاحتجاج بالأساليب اللاحقة بعد إنشاء الكائن؟ انظر إلى هذا الرمز:

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

شكرا مقدما ، etam.

هل كانت مفيدة؟

المحلول

"دورة الحياة" التي تتم الإشارة إليها من قبل عمليات الاسترجاعات هي دورة حياة ثبات قاعدة البيانات. لذلك ، في هذه الحالة ، فإن الإحالة التي تتم الإشارة إليها هو الإنشاء الفعلي ، أو إدراج الكائن في قاعدة البيانات. وبالمثل ، تشير QuartupDate و AfterUpdate إلى اللحظة التي يتم إرسال بيان التحديث وبعدها إلى قاعدة البيانات.

إذا كنت بحاجة إلى الاستفادة من إنشاء الكائن ، فيمكنك القيام بذلك من خلال آليات Scala العادية لمؤسس أو بعض المصنع لإنشاء الكائنات.

على الرغم من أنني أوافق على أنه من المدينات إلى حد ما ، إلا أن تسمية خاطئة شائعة جدًا في مختلف منتجات ORM الموجودة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top