Джексон - сериализация сущностей с двунаправленными отношениями (избегая циклов)

У меня есть две сущности:

Parent {
   Child[] children;
}

and 

Child {
   Parent parent;
}

Я знаю о @JsonBackReferenceи @JsonManagedReference. Они хороши, если я сериализую экземпляры Parent.

Но мне также нужно передать экземпляры Child, и я хочу, чтобы поле parentбыло заполнено.

Другими словами:

  1. При сериализации Parentон должен иметь дочерние элементы, но их родительское поле может быть пустым (может быть решено с помощью аннотаций ссылок json).
  2. При сериализации Childон должен иметь parentсо своими дочерними элементами(но дочерние элементыне обязательно должны иметь parentзаполнен.

Есть ли способ решить эту проблему, используя стандартные возможности Джексона?

То есть пропустить сериализацию сущностей, которые уже были сериализованы, вместо того, чтобы помечать поля, подходящие или не подходящие для сериализации.

43
задан Eugene Retunsky 10 April 2012 в 03:31
поделиться