0

Play Framework 2 を学び始めたところ、奇妙な問題に遭遇しました。

aとその多数の s のOneToMany間に定義された関係があります。ProjectTask

@Entity
public class Project extends Model {
    @OneToMany(mappedBy="project", cascade=CascadeType.ALL)
    public List<Task> tasks = new ArrayList<Task>();
}

@Entity
public class Task extends Model {
    @ManyToOne
    public Project project;
}

を見つけて表示するコードがいくつかありますProject

final Project foundProject = Project.find(id);
//Logger.error("Tasks size:"+foundProject.tasks.size());
return ok(views.html.tasks.render(foundProject, taskForm));

そしてビュー:

@for(task <- project.tasks) {
    <li>@task.title</li>
}

Loggerを見つけるコード内のコメントアウトされた行に注意してくださいProject。その行がコメントアウトされているTask場合、s は表示されません。行がコメントアウトされていない場合、Tasks が表示されます。

ある種の遅延初期化コードがコントローラー内で機能するが、ビュー内では機能しないかのようです。私が見逃した Play の機微はありますか、それとも何か間違ったことをしていますか?

4

1 に答える 1

2

それは私のせいでした-私はeBeanを初めて使用し、プロジェクトを見つけるためにコードでこれを行っていました:

finder.ref(id);

それ以外の:

finder.byId(id);
于 2012-05-19T07:04:26.633 に答える