我想将loggedInUser存储在表中。所以我使用session访问loggedInUser.But我得到的错误就像这个类没有这样的属性会话。如何在域中使用会话?
class GenderAudit {
String name
User doneBy
def GenderAudit(Gender gender,String operation)
{
this.name=gender.name
this.doneBy = session.loggedInUser
}
}
答案 0 :(得分:4)
域类不应该知道有关HTTP层的任何信息。从可以访问该数据的服务或控制器设置值。
另外,请注意,定义这样的构造函数很好,但是你必须为Hibernate定义一个no-arg构造函数,因为它创建了新的空实例并调用了你的setter。通常我们不在Grails中使用参数化构造函数,因为Groovy添加的地图构造函数非常方便。
答案 1 :(得分:2)
使用控制器或服务中的代码
new GenderAudit(name:gender.name, doneBy: session.loggedInUser).save()
我同意Burt Beckwith的观点。从Domain类中删除所有构造函数。