0

play webframework 2.0 との多対一の関係を保存して表示しようとしています...

私はこれらのモデルを持っています:

@Entity
public class Project extends Model{

    @Id
    public Long id;

    @Required
    public String name; 

    @ManyToMany
    public List<Worker> workers = 
          new ArrayList<Worker>();

    @ManyToOne
    public Worker head;
...

}


@Entity
public class Worker extends Model{  
    @Id
    public Long id;

    @Required
    public String name;

   ...

    public static Map<String,String> options() {
        LinkedHashMap<String,String> options = new LinkedHashMap<String,String>();
        for(Worker w: Worker.getAll()) {
            options.put(w.id.toString(), w.name);
        }
        return options;
    }       

}

そして私はこの見解を持っています:

@(projects: List[Project], taskForm: Form[Project])

@import helper._


    <h1>@projects.size() Projects(s)</h1>

    <ul>
        @for(project <- projects) {
            <li>
                @project.name
                <b> - head: </b>
                @project.head.name

                <ul>
                @for(worker <- project.workers) {
                    <li>
                        @worker.name
                    </li>
                }
                </ul>

                @form(routes.ProjectController.deleteProject(project.id)) {
                    <input type="submit" value="Delete">
                }

            </li>
        }
    </ul>

    <h2>Add a new task</h2>

    @form(routes.ProjectController.newProject()) {        

        @inputText(taskForm("name"))

        @inputText(taskForm("description"))               

        @select(
            taskForm("head.id"), 
            options(Worker.options), 
            '_label -> "Worker"         
        )       


        <input type="submit" value="Create">

    }   

しかし、プロジェクトを保存すると、関連付けられたワーカーが頭になく、多対多の例が見つかりませんでした.. Play 2.0でリレーションを管理する方法を誰かに教えてもらえますか、それを説明するリンクを教えてもらえますか?

すべての返信に感謝

4

1 に答える 1

0

getAllメソッドを使用してすべてのプロジェクトを取得し、それらをビューに渡しました...プロジェクトにワーカーをアタッチするには、「fetch('workers')」を実行する必要があることがわかりました...

コントローラのgetAllの後にfetchメソッドを見逃しました...問題は解決しました...

于 2012-05-28T12:43:43.020 に答える