Десериализация объекта со свойствами jsonbackreference - PullRequest
0 голосов
/ 06 октября 2018

У меня есть класс агента, который имеет двунаправленные отношения с собой как родительские дочерние отношения.Сущность выглядит следующим образом.

@Entity
@Table(name = "ccm_tbl_agents")
public class Agent {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int agentId;

private String agentName;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "parent_agent_id")
@JsonBackReference
private Agent parentAgent;

@OneToMany(fetch = FetchType.LAZY, mappedBy = "parentAgent")
@JsonManagedReference
private List<Agent> childAgents;

//Getters and setters omitted
}

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

ObjectMapper objectmapper = new ObjectMapper();
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,   false);
AgentResponse parentAgent = objectMapper.convertValue(currentAgent, AgentResponse.class);

Я понимаю, что при использовании @jsonbackreference это свойство не будет сериализовано.В любом случае, я мог бы заставить это работать?

А пока я просто устанавливаю это свойство вручную.Но сделать это для каждой собственности очень много.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...