0

id 存在于参数中,但不保存到数据库中。例如

[book.id:1, comments: good]

评论将保存到 db 但 book.id 不会。

我需要弄清楚如何将 params.book.id 保存到从 hasmany/belongsTo 关系创建的 db 列 BOOK_ID 中。

4

3 回答 3

0

好吧,看来我在我的域中拼错了一个关键参数。所以域期待 x 并且得到 y。因此 id 始终为空。我花了一段时间才发现它,我很困惑,因为我之前在另一个项目中成功实现了 ids。Grails 有一些 jira 问题也让人考虑其他可能性,但这次是我的错误。

于 2012-07-16T16:15:44.953 回答
0

你已经覆盖了toString,因此你的书总是由name而不是呈现id。如果您删除您的toString()方法,您将看到预期的结果。

如果您希望选择框与名称一起使用,只需添加optionValue="name".

于 2012-07-13T17:25:34.920 回答
0

默认情况下,每个元素的 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>

请参考以下链接

带有 optionkey 的 Grail 示例

于 2012-07-13T16:56:39.170 回答