0

在我的视图模板中仅访问 3 个级别的成员字段时,我收到 NullPointerException:

@tfz.modelTfzTyp.simulierteTfzTyp.typ

如果我改用 getter 函数,它就可以工作。但这很麻烦。

我正在使用 Ebean,我读到 Hibernate 有一个max_fetch_depth. 我怀疑类似的事情导致了我的问题。如何让 Play 急切地加载更多对象?

4

1 回答 1

2

max_fetch_depth这与财产无关。

模型上的字节码增强允许动态获取,它仅适用于 getter。

见官方文档

直接 Ebean 字段访问的增强(启用延迟加载)仅适用于 Java 类,不适用于 Scala。因此,从 Scala 源文件(包括标准 Play 2 模板)直接访问字段不会调用延迟加载,通常会导致空的(未填充的)实体字段。为确保字段被填充,要么 (a) 手动创建 getter/setter 并改为调用它们,要么 (b) 在访问字段之前确保实体已完全填充。

于 2013-01-16T08:16:49.780 回答