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