如何在grails中的域类中使用会话

时间:2013-08-09 05:32:23

标签: session grails

我想将loggedInUser存储在表中。所以我使用session访问loggedInUser.But我得到的错误就像这个类没有这样的属性会话。如何在域中使用会话?

class GenderAudit {


    String name
    User doneBy

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

    }
}

2 个答案:

答案 0 :(得分:4)

域类不应该知道有关HTTP层的任何信息。从可以访问该数据的服务或控制器设置值。

另外,请注意,定义这样的构造函数很好,但是你必须为Hibernate定义一个no-arg构造函数,因为它创建了新的空实例并调用了你的setter。通常我们不在Grails中使用参数化构造函数,因为Groovy添加的地图构造函数非常方便。

答案 1 :(得分:2)

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

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

我同意Burt Beckwith的观点。从Domain类中删除所有构造函数。