Play Framework 2: спасение многих ко многим

Я новичок в Play Framework 2. У меня есть 2 модели: Книга и Автор, у одной книги может быть много авторов, поэтому я думаю, что их много ко многим. Вот мои модели:

@Entity 
public class Book extends Model {

  @Id
  public Long id;

  @Constraints.Required
  public String title;

  @Constraints.Required    
  @ManyToMany(cascade=CascadeType.ALL,mappedBy="books") 
  public Set authors = new HashSet(); 
  public static Model.Finder find = new Model.Finder(Long.class, Book.class);

  public static Page page(int page, int pageSize, String sortBy, String order, String filter) {
      return 
        find.where()
            .ilike("title", "%" + filter + "%")                
            .orderBy(sortBy + " " + order)     
            .findPagingList(pageSize)
            .getPage(page);
  }

}

@Entity 
public class Author extends Model {

  @Id
  public Long id;

  @Constraints.Required
  public String name;

  @ManyToMany(cascade=CascadeType.ALL) 
  public Set books = new HashSet(); 

  public static Model.Finder find = new Model.Finder(Long.class, Author.class);

  public static Page page(int page, int pageSize, String sortBy, String order, String filter) {
      return 
        find.where()
            .ilike("name", "%" + filter + "%")
            .orderBy(sortBy + " " + order)                
            .findPagingList(pageSize)
            .getPage(page);
  }

}

и я'используя этот тег выбора в форме ввода, например так:


  bejo
  joko

и вот мой код контроллера:

Map newData = new HashMap();
Map urlFormEncoded = play.mvc.Controller.request().body().asFormUrlEncoded();
if (urlFormEncoded != null) {
  for (String key : urlFormEncoded.keySet()) {
    String[] value = urlFormEncoded.get(key);
    if (value.length == 1) {                    
      newData.put(key, value[0]);
    } else if (value.length > 1) {
      for (int i = 0; i < value.length; i++) {
        newData.put(key + "[" + i + "].id", value[i]);          
      }
    }
  }
}        
Form bookForm = new Form(Book.class).bind(newData);
if(bookForm.hasErrors()) {
 return badRequest(createForm.render(bookForm));
}
bookForm.get().save();

но эти коды не работают. может ли какое-то тело помочь мне? Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос