【发布时间】:2011-06-27 08:27:45
【问题描述】:
我有:
def userList = [];
if(!User.findAllByGrade(10)){
userList.add(new User());
}else{ ..... }
<g:each in="${userList}" var="user">
<!-- my big form -->
</g:each>
无论用户是否存在,我都需要显示一个表单......所以我只是将“虚拟”用户添加到列表中。但是会产生错误:
消息:对象引用了一个未保存的瞬态实例 - 在刷新之前保存瞬态实例:用户 原因:对象引用了未保存的瞬态实例 - 在刷新之前保存瞬态实例:用户
我可以用来复制表格,但我只是想知道如何解决这个问题......
【问题讨论】:
-
@nightinagle2k1: 对不起,如果用户不存在,你如何获取 g:each 中的信息?或者您不需要这些信息?
-
那是准确的代码吗?如果将新的 User 实例附加到已经在 Hibernate 会话中的域对象,通常会出现该错误。上面的代码似乎没有这样做。是
if还是else失败了? -
在表单中渲染瞬态对象对我来说很好。看起来您正在尝试保存或 Grails 尝试刷新的其他对象中引用用户。究竟是什么操作给出了错误?代码中的错误到底在哪里?如果是保存动作,你能显示它的代码吗?
-
@nightingale2k1,你有没有想过为什么 grails 试图在这种情况下进行保存?我想我遇到了类似的问题。
标签: java hibernate grails dns grails-orm