0

我想将loggedInUser 存储在一个表中。所以我正在使用会话访问loggedInUser。但是我收到了错误,就像这个类没有这样的属性会话。如何在域中使用会话?

class GenderAudit {


    String name
    User doneBy

    def GenderAudit(Gender gender,String operation)
    {
        this.name=gender.name
        this.doneBy = session.loggedInUser

    }
}
4

2 回答 2

4

域类不应该对 HTTP 层有任何了解。从有权访问该数据的服务或控制器中设置值。

另外,请注意定义这样的构造函数很好,但是您还必须为 Hibernate 定义一个无参数的构造函数,因为它会创建新的空实例并调用您的 setter。一般我们不会在 Grails 中使用参数化构造函数,因为 Groovy 添加的映射构造函数非常方便。

于 2013-08-09T05:50:46.523 回答
2

在您的控制器或服务中使用代码

new GenderAudit(name:gender.name, doneBy: session.loggedInUser).save()

我同意伯特·贝克威斯的观点。从域类中删除所有构造函数。

于 2013-08-09T06:17:56.227 回答