В одном из наших проектов мы используем веб-приложение java, общающееся с экземпляром MongoDB. В базе данных мы используем DBRefs
для отслеживания некоторых объектных отношений. Мы (де) сериализуем объекты POJO с помощью jackson (используя mongodb-jackson-mapper).
Однако мы используем те же POJO для последующей (де) сериализации во внешний мир, где наш интерфейс имеет дело с представлением JSON.
Теперь нам нужен способ сериализации для внешнего мира, чтобы он содержал указанный объект из DBRef
(чтобы пользовательский интерфейс мог представить весь объект), в то время как мы, очевидно, хотим, чтобы 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 (), либо без него, вероятно, в зависимости от некоторого объекта конфигурации. Это возможно? Вы видите лучший способ сделать это?