我在Play 2项目中获得了这两个模型:
@Entity
public class Site extends Model{
@Id
public String adId;
@Required
public String name;
@Required
@OneToMany (cascade = CascadeType.ALL)
public List<Room> rooms;
...
}//end of class
和
@Entity
public class Room extends Model {
@Id
@Required
public String adId;
@Required
public String name;
public List<Reservation> reservations = new ArrayList<Reservation>();
...
}
当我在view.scala.html
中使用此代码时 var treeData = [
@for(site <- sites) {
{title: "@site.name", tooltip: "@site.adId",
children: [
@for(room <- site.rooms) {
{title: "@room.name", tooltip: "@room.adId"},
}
]
},
}
];
我无法访问site.rooms
如果我在服务器端测试它,则存在数据。
另一件奇怪的事情是我得到了site.adId
,但是site.name
仍然是空的......
如果有人知道我做错了什么......
(抱歉英语不好,不是我的母语)。
答案 0 :(得分:2)
您需要getter才能在模板/ scala中访问数据。至少是那个为我修好的东西。我想我在mailinglist上找到了相关信息:
此问题已在之前讨论过。你必须使用私人领域和 公共访问器方法,如果你想使用Ebean延迟加载(或任何 来自Scala代码的其他Java魔法。
答案 1 :(得分:0)
或者在查询期间获取数据:finder.fetch("rooms")query().findList()