Play Framework 2 を学び始めたところ、奇妙な問題に遭遇しました。
aとその多数の s のOneToMany
間に定義された関係があります。Project
Task
@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 は表示されません。行がコメントアウトされていない場合、Task
s が表示されます。
ある種の遅延初期化コードがコントローラー内で機能するが、ビュー内では機能しないかのようです。私が見逃した Play の機微はありますか、それとも何か間違ったことをしていますか?