MBo*_*zic 2 grails grails-orm grails-domain-class
我的域类看起来像这样:
class UserEvent {
User user
Event event
boolean isAttending
}
Run Code Online (Sandbox Code Playgroud)
生成的数据库表外观具有以下列:
[ID , EVENT_ID, USER_ID , IS_ATTENDING ]
Run Code Online (Sandbox Code Playgroud)
我有Event对象,只有User对象的id(user_id).我想用这个数据创建新的UserEvent对象,而不加载User对象,它可能看起来像这样:
def userEvent = new UserEvent(user:['id':user_id],isAttending: true, event: event)
Run Code Online (Sandbox Code Playgroud)
我尝试了很多东西,但没有找到解决方案.我认为这绝对是可能的,因为它与控制器中的params以类似的方式完成,控制器只包含关联对象的id:
def userEvent= new UserEvent(params)
Run Code Online (Sandbox Code Playgroud)
我期待着找到解决方案.谢谢.
当您说"不加载用户对象"时,您可以这样做:
def userEvent = new UserEvent(user:User.load(user_id), isAttending: true, event: event)
Run Code Online (Sandbox Code Playgroud)
与此不同get,该load方法不会访问数据库.相反,它创建了一个代理对象,该对象仅在第一次id访问非属性时从数据库中提取其数据.
| 归档时间: |
|
| 查看次数: |
1029 次 |
| 最近记录: |