Avaje - EBean - 部分对象查询禁用延迟加载

时间:2013-08-15 10:37:40

标签: playframework ebean

我正在使用Play开发应用程序!框架2.1.3,使用EBean作为模型层我希望能够执行部分对象查询,并且当我序列化为JSON以准备将结果发送回用户时,不能按需加载未选择的属性。< / p>

我尝试将AutoFetch设置为false,我还尝试在序列化为JSON之前结束事务(我最终得到一个事务处于非活动状态错误)我还在我的模型类上添加了注释@Lazy(false)

在同一个音符上,我也有一对多关联,我想查询它的前三行,我使用new FetchConfig().queryFirst(2)但我想由于同样的延迟加载问题,我结束了得到整个相关的关联行。

查看手册,我读了这篇文章(EBean Partial Objects):

  

部分对象将在需要时延迟加载其余数据   你获得或设置了它没有的财产。

有没有解决方法,我尝试的任何东西似乎都无法运作!

2 个答案:

答案 0 :(得分:1)

你有两种选择。

选项1)使用Ebean内置的JSON支持,使用Jackson核心。 Ebean的JsonContext提供了许多编写器选项。

使用PathProperties的示例,该示例应用于查询和JSON。

x < y

选项2)是版本6.2.2上的新功能,您可以在查询中设置setDisableLazyLoading(true)。

参考:https://github.com/ebean-orm/avaje-ebeanorm/issues/360

答案 1 :(得分:0)

我已经使用StatementsResultSets使用标准JDBC接口解决了这个问题,我不需要延迟加载查询。

作为附注,事实证明,在Scala的情况下,直接字段访问不使用延迟加载,但不幸的是,它不是我用于我的应用程序的语言。