這包括針對CRUD操作的四個事件回調:
onLoad、beforeInsert、befortUpdate及beforeDelete,
當執行資料庫操作時就會觸發四個方法。
onLoad在此類從資料庫中載入時被啟用。
beforeInsert在save()方法執行前被啟用。
beforeUpdate在update()方法執行前被啟用。
beforeDelete在delete()方法執行前被啟用。
domain例:
class User{
String name
// ...
def beforeInsert = {
// your code goes here
}
def beforeUpdate = {
// your code goes here
}
def beforeDelete = {
// your code goes here
}
def onLoad = {
// your code goes here
}
}
這裡對上述事件進行補充。
Grails支持GORM事件及Hibernate套件,
GORM事件的定制包括事件的註冊,在刪除、插入及更新發生時會觸發這些事件。
Hibernate的事件套件為領域模型提供了支持,
可以使用以下這些方法來對Hibernate的事件系統進行啟用:
afterInsert、afterUpdate、afterDelete、 beforeLoad、afterLoad、beforeSave及afterSave。
其它的領域層事件就是領域類的時間戳記了。
如果你提供了一對特別命名的字段(lastUpdated与dateCreated),GORM就會自動為這個類增加時間。
在Web應用的其它層上,Grails提供了Web執行事件以管理Web的執行
(從一種狀態轉化為另一種狀態)和
Ajax事件(如果Web應用中發生了某個事件就會去調用一個特定的JavaScript函數)。
Grails還支持對自動重新加載事件的攔截,
這可用來監控資源的改變,當發生變化時會重新加載資源。
這就是Grails在運行時能重新加載應用的原因。
其它文章
沒有留言:
張貼留言