0

我开始学习 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。

就好像某种惰性初始化代码在控制器内部工作但不在视图内部工作。是否有我错过的游戏的微妙之处,或者我做错了什么?

4

1 回答 1

2

这是我的错 - 我是 eBean 的新手,在代码中这样做是为了找到我的项目:

finder.ref(id);

代替:

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