我是一名Java开发人员,去年我也做了一些Ruby。 我最近发现play framework,这听起来像两个世界中最好的一样。
我正在尝试创建我的第一个应用程序,并且我在文档中似乎找不到一些东西: 您如何访问OneToMany关系中的父母/子女?
我的项目包含一个项目模型,可以有几个里程碑。它定义如下:
@Entity
public class Project extends Model {
@Id
public String id;
public String name;
public int number;
@OneToMany
public Milestone milestone;
}
我的里程碑也非常简单:
@Entity
public class Milestone extends Model{
@Id
public String id;
@ManyToOne
public Project project;
public String name;
public Date expectedEnd;
}
现在,我想列出项目的所有里程碑,或者为项目添加里程碑。
在rails中,我会在我的html templates中执行类似的操作:
@project.milestones
但如果我尝试玩游戏,我会收到错误,因为没有定义里程碑。
value milestones is not a member of models.project
我也试过
@project.milestones.size()
因为我希望得到一个列表(一对多),但这显然不起作用。
value size is not a member of model.Milestone
你能告诉我我应该如何获得里程碑吗? 相反,我如何获得里程碑项目?
谢谢!
答案 0 :(得分:0)
使用:
@Entity
public class Project extends Model {
@Id
public String id;
public String name;
public int number;
@OneToMany(mappedBy = "project")
public java.util.List<Milestone> milestones = new ArrayList<>();
}
和
@Entity
public class Milestone extends Model{
@Id
public String id;
@ManyToOne
public Project project;
public String name;
public Date expectedEnd;
}
所以你可以在vie中使用它们。像:
<ul>
@for(milestone <- project.milestones){
<li>@milestone.name</li>
}
</ul>