2

我在 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仍然是空的......

如果有人知道我做错了什么......

(对不起英语不好,这不是我的母语)。

4

2 回答 2

2

您需要获取器才能在模板中/通过 scala 访问数据。至少那是为我解决的问题。我想我在邮件列表中找到了这些信息:

这个问题之前已经讨论过。如果要从 Scala 代码中使用 Ebean 延迟加载(或任何其他 Java 魔法),则必须使用私有字段和公共访问器方法。

于 2012-06-05T10:17:24.550 回答
0

或者在查询期间获取数据:finder.fetch("rooms")query().findList()

于 2012-06-10T13:50:32.930 回答