我必须从我的域调用我的控制器的一种方法。我试图找到一些答案,但我没有找到任何东西,我不确定是否有可能。对不起,如果我的问题是错误的,但在我有我必须找到一个解决方案,因为我已经在我的域中的方法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中是新的.. –