id 存在于参数中,但不保存到数据库中。例如
[book.id:1, comments: good]
评论将保存到 db 但 book.id 不会。
我需要弄清楚如何将 params.book.id 保存到从 hasmany/belongsTo 关系创建的 db 列 BOOK_ID 中。
好吧,看来我在我的域中拼错了一个关键参数。所以域期待 x 并且得到 y。因此 id 始终为空。我花了一段时间才发现它,我很困惑,因为我之前在另一个项目中成功实现了 ids。Grails 有一些 jira 问题也让人考虑其他可能性,但这次是我的错误。
你已经覆盖了toString
,因此你的书总是由name
而不是呈现id
。如果您删除您的toString()
方法,您将看到预期的结果。
如果您希望选择框与名称一起使用,只需添加optionValue="name"
.
默认情况下,每个元素的 value 属性将是对每个元素的 toString() 调用的结果。将其设置为 optionKey 允许该值成为列表中每个元素的 bean 属性。
请将选择更改为
<g:form action="review">
<g:select name="book.id"
from="${item.Book.list()}"
value="${book?.id}"
/>
<g:textField name="bookreview" value="${params?.bookreview}" /><br>
请参考以下链接