如何提高Play的max_fetch_depth?

时间:2013-01-16 02:26:50

标签: orm playframework-2.0 ebean

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

@tfz.modelTfzTyp.simulierteTfzTyp.typ

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

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

1 个答案:

答案 0 :(得分:2)

这与max_fetch_depth属性无关。

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

查看官方documentation

  

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