在我们的一个项目中,我们使用 java webapp 与 MongoDB 实例对话。在数据库中,我们使用DBRefs
来跟踪一些对象关系。我们使用杰克逊(使用 mongodb-jackson-mapper)对 POJO 对象进行(反)序列化。
但是,我们使用相同的 POJO 然后(反)序列化到外部世界,我们的前端处理呈现 JSON。
现在,我们需要一种外部世界的序列化方法来包含来自 a 的引用对象DBRef
(以便 UI 可以呈现完整的对象),而我们显然希望将其DBRef
写入数据库,而不是整个对象。
现在我写了一些未经测试的静态嵌套类代码:
public static class FooReference {
public DBRef<Foo> foo;
// FIXME how to ensure that this doesn't go into the database?
public Foo getFoo() {
return foo.fetch();
}
}
理想情况下,我想要一种对此进行注释的方法,以便我可以(反)序列化它,无论是否有 getFoo() 结果,可能取决于某些配置对象。这可能吗?你有没有更好的方法来做这件事?