0

我创建了两个域,作者和书,作者有很多书,书是属于作者的。

class Author {
     hasMany = [ books : Book ]
     String name
}

class Book {
    String title
    Author author
}

BookController.groovy 中的这个“保存书”功能

   def savebook={

        def json = request.JSON
        def bookInstance = new Book()
        bookInstance.properties = json

        bookInstance.author_id = json.author_id
        bookInstance.title = json.title         

        if (bookInstance.validate()) {
            bookInstance.save();
            def rep = [ respence: "1" ] // save
            render rep as JSON
        }

        else {
            def rep = [ respence: "0" ] // not save
            render rep as JSON
        }

    }

我还没有找到该行的解决方案:bookInstance.author_id = json.author_id在“savebook”中创建作者的书。
我的第二个问题是 JSON 对象的结构应该如何进行 REST POST ?

4

1 回答 1

1

对于您问题的第一部分,您需要通过他们的 id 查找作者并将该实例分配给 Book 中的 author 变量:

def author = Author.get(json.author_id)
bookInstance.author = author
bookInstance.title = json.title
author.addToBooks(bookInstance)

进入 rest 方法的 JSON 的结构可以是任何有效的 JSON。你可以简单地做

{
    "author_id": 12345,
    "title" : "See Jane Run"
}

或者您可以根据需要变得复杂。

于 2012-06-08T01:37:02.210 回答