我开始学习 Play Framework 2,遇到了一个奇怪的问题。
我在 a和它的许多sOneToMany
之间定义了一个关系。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。
就好像某种惰性初始化代码在控制器内部工作但不在视图内部工作。是否有我错过的游戏的微妙之处,或者我做错了什么?