在我的视图模板中仅访问3级深度的成员字段时,我收到NullPointerException:
@tfz.modelTfzTyp.simulierteTfzTyp.typ
如果我使用getter函数,它可以工作。但它很麻烦。
我正在使用Ebean,我读到Hibernate有一个max_fetch_depth
。我怀疑类似的东西会导致我的问题。如何让Play热切地加载更多对象?
答案 0 :(得分:2)
这与max_fetch_depth
属性无关。
模型上的字节代码增强允许动态提取,它仅适用于getter。
查看官方documentation:
直接Ebean字段访问(启用延迟加载)的增强仅适用于Java类,而不适用于Scala。因此,来自Scala源文件(包括标准Play 2模板)的直接字段访问不会调用延迟加载,通常会导致空(未填充)实体字段。要确保填充字段,可以(a)手动创建getter / setter并改为调用它们,或者(b)确保在访问字段之前完全填充实体。