Lazyloading collection in play-salat
是否可以用Sala延迟加载集合?
例如我有一个像
这样的对象
示例1(在这种情况下,检索对象时将加载整个用户列表)
1 2 3 4 5 |
或示例2(对象加载时没有列表,但是不知道如何获取用户列表)
1 2 3 4 5 |
如何在没有用户列表的第一个示例中加载对象?
或:如何在第二个示例中加载用户列表?
预先感谢!
这里是沙拉的作者。
Salat没有类似ORM的延迟加载功能。
但是您可以在进行查询时轻松决定是否需要用户列表。
您可以将用户作为嵌入式文档持久保存在测试文档中,然后使用查询的第二个参数ref在对象中排除(0)或包括(1)字段。
1 | TestDAO.find(/* query */, MongoDBObject("users" -> 0)) |
另一种策略是将用户文档分解为一个子集合-有关更多信息,请参见https://github.com/novus/salat/wiki/ChildCollection。在此示例中,
这里的策略是在父DAO中进行保存时,您覆盖了save方法以使用子DAO保存用户,然后将
然后,默认情况下,在
如果要使用