Grails有问题保存对象ID

时间:2012-07-13 14:59:37

标签: sql oracle grails groovy

id存在于params中但不保存到db。例如

[book.id:1, comments: good]

注释将保存到db但book.id不会。

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

3 个答案:

答案 0 :(得分: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>

请参阅以下链接

Grail example with optionkey

答案 1 :(得分:0)

您已覆盖toString,因此您的图书始终由name而不是id呈现。如果您删除了toString()方法,则会看到预期结果。

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

答案 2 :(得分:0)

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