我必須從我的域調用我的控制器的一種方法。我試圖找到一些答案,但我沒有找到任何東西,我不確定是否有可能。對不起,如果我的問題是錯誤的,但在我有我必須找到一個解決方案,因爲我已經在我的域中的方法beforeInsert()內部做的問題。如何在grails中調用域內的服務方法?
這是我嘗試運行該項目時的錯誤:
|錯誤2015-12-02 10:59:29,210 [localhost-startStop-1]錯誤hibernate.AssertionFailure - 發生斷言失敗(這可能表示Hibernate中存在錯誤,但更可能是由於會話的不安全使用) 消息:在com.xxxx進入空ID(不發生異常後刷新會議)
控制器的方法:
def calculate(Integer max){
params.max = Math.min(max ?: 10, 100)
def users= User.findAllByType(null)
LicenceTypeService.calculate(users) //This call a service
redirect(action: "list", params: params)
}
在我的域名:
protected void callCalculateWhencreateUser(){
def users= User.find("from User order by id desc")
LicenceTypeService.calculate(users) //This call a service
}
def beforeInsert() {
encodePassword()
callCalculateWhencreateUser()
}
在我的服務:
def calculate(def users){
//logic code
}
不確定靜態調用您的服務是否正確,因爲它可能沒有被grails應用程序正確初始化。只需將您的服務連接到您的控制器和域名,然後按正常方式打電話。 – shuttsy
你能舉個簡單的例子嗎?我在grails中是新的.. –