Grails trouble saving object id
===

I can't seem to save the object's ID to my database. Each book can have many reviews. I have a g:select list of books for the user to choose from and one simple text field for the user to enter a comment. I want to save the comment and the id of the book in the review table. Not the string value of the book as is currently happening. 

This is my gsp

    <g:form action="review">
          <g:select name="book.id"
            from="${item.Book.list()}"
            value="${book?.id}"
            optionKey="id" />
    
         <g:textField name="bookreview" value="${params?.bookreview}" /><br>
     <g:submitButton name="submit" value="Submit" />
    </g:form>

domains:

    class Book {

    String name
    
    static constraints = {
        name()
    }
    String toString(){
        "${name}"
    }
    
    static hasMany = [reviews:Review]
    }
    class Review {

    String comments
    Date dateCreated
    
    static constraints = {
        comments()
    }
    
    static belongsTo = [book:Book]
    }

my params are coming through with the id, but I can't assign it to the database:

    [bookreview:great book, submit:Submit, book.id:1, book:[id:1], action:review, controller:review]

Scaffolding works but does not store the id, it stored the toString form of the name. 

my controller:

    class ReviewController {

    def scaffold = true
    
    def index() { redirect(action:'list')}
    
    def review = {
        print params
        def review = new Review(params)
        if(review.validate()){
            review.save
        }
    }
    }

as saved through scaffolding:
    
    Comments 	Book 	                Date Created

    good book 	Game of Thrones 	    2012-07-13 10:52:10 EDT

what I want:

    Comments 	Book 	                Date Created

    good book 	1 	                2012-07-13 10:52:10 EDT


