我有一个应用程序,用户需要输入数据,但表单分布在多个屏幕上,每个屏幕都要求用户在用户更改页面时将数据发送到服务器。
通常,我会在会话中存储域对象,并让用户在会话中对此对象进行更改。完成所有用户更改后,我会立即将所有更改保存到数据库。此表单不是流程,用户可以自由地转到一页并返回。
使用Grails,我想知道最好的方法。此域对象是高度嵌套的,因此为Web层创建psudo-domain对象(然后逐字段映射到域obj)不是一种选择。
我想知道在会话中存储Hibernate域对象是否是一个好主意?我有Hibernate会话问题,但是由于域对象与hibernate会话分离。
非常重要:我无法在每个页面上更改数据库。一旦用户完成所有更改,我只能将域对象保存到DB。如前所述,这可能跨越几个http请求。每次,用户更改都需要临时存储在某处。
我尝试了多次尝试将域obj保留在会话中,然后在每次提交时,重新连接该域对象并进行更新,但grails会在每个请求上刷新会话,因此这会导致保存不完整的域对象。
我希望有人可以向我提供一些关于将用户更改存储在内存中的建议,然后立即将更改提交给数据库。
由于
答案 0 :(得分:2)
你应该能够:
这是你在做什么的?很难从你的帖子中看出你是想在跨越请求的hibernate会话中保留你的对象图,或者你想在HttpSession中跨越请求来获取它。