У меня есть класс агента, который имеет двунаправленные отношения с собой как родительские дочерние отношения.Сущность выглядит следующим образом.
@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
это свойство не будет сериализовано.В любом случае, я мог бы заставить это работать?
А пока я просто устанавливаю это свойство вручную.Но сделать это для каждой собственности очень много.