Возможно ли, что сущность отличается от экземпляра Book?
Попробуйте использовать метод findAll () вместо executeQuery.
Book.findAll("From ${entity.class.name} s where s.id=? ", [entity.id])
//OR this is same as above
def exist = entity.class.get(entity.id)
Если сущность может быть другого типазатем Book, вместо вызова findAll для класса Book, вы должны вызывать его для соответствующего класса.
Сначала попробуйте использовать findAll, думаю, это решит вашу проблему.