我们有两个有亲子关系的模型。
@Entity
public class Parent extends Model {
@Id
public Long parentid;
public String parentname;
@OneToMany
Child achild;
}
@Entity
public class Child extends Model {
@Id
public Long childid;
public String childname;
@ManyToOne
Parent aparent;
}
我们需要创建一个单独的视图,我们可以创建和显示子视图。 我们如何创建这样的观点?
答案 0 :(得分:1)
有很多方法可以实现这一点,但是裸骨(仅限HTML)将呈现具有给定父级及其子级的页面,并使用HTML表单输入/编辑子级。
首先,从......
更改您孩子的父母声明@OneToMany
Child achild;
......类似......
@OneToMany(mappedBy="aparent", targetEntity=Child.class)
List<Child> children;
假设您正在使用eBean,请添加一个查找程序:
static Model.Finder<Long, Parent> find = new Model.Finder<>(Long.class, Parent.class);
您的控制器将查找父级及其子级,并将父级移交给模板:
public static Result showParent(Long parentId) {
Parent parent = Parent.find.fetch("children").where().eq("id", parentId).findUnique();
return ok(parentTemplate.render(parent));
}
您的模板parentTemplate.scala.html将接受该Parent对象,呈现相应的父字段,并遍历子项,并显示每个子项的详细信息:
@(parent: Parent)
<html>
...
<h1>Parent: @parent.parentName</h1>
@for(child <- parent.children) {
<h2>@child.childName</h2>
}
<form ...>
</html>
同样,有很多方法可以实现它,但这是开始使用Play的Scala模板引擎的最简单方法。