Skip to content
Yuki Yoshinoya edited this page Aug 27, 2013 · 5 revisions

Scala ActiveRecord provides callback hooks for executing actions before or after the model is saved, deleted, or validated. You can override callback methods and implement logic, if necessary. Nothing is done by default.

Available Hooks

  • protected def beforeValidation(): Unit
  • protected def beforeCreate(): Unit
  • protected def afterCreate(): Unit
  • protected def beforeUpdate(): Unit
  • protected def afterUpdate(): Unit
  • protected def beforeSave(): Unit
  • protected def afterSave(): Unit
  • protected def beforeDelete(): Unit
  • protected def afterDelete(): Unit

The model methods are called in the following order when creating a new record:

  1. beforeValidation
  2. doValidate
  3. beforeSave
  4. beforeCreate
  5. doCreate
  6. afterCreate
  7. afterSave

The model methods are called in the following order when updating an exising record:

  1. beforeValidation
  2. doValidate
  3. beforeSave
  4. beforeUpdate
  5. doUpdate
  6. afterUpdate
  7. afterSave

The model methods are called in the following order when deleting an existing record:

  1. beforeDelete
  2. doDelete
  3. afterDelete

Examples:

case class User(@Format("^[a-z]+$") @Length(min=4) var login: String) extends ActiveRecord {
  @Transient
  @Length(min=8, max=20)
  var password: String = _
  var hashedPassword: String = _

  override def beforeValidation() {
    login = login.trim.toLowercase
  }

  override def beforeSave() {
    hashedPassword = SomeLibrary.encrypt(password)
  }
}
Clone this wiki locally