我有一个代理类,它作为父子关系与其自身具有双向关系。实体看起来像这样。
@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
时,该属性不会序列化。反正我可以做这个工作?
现在,我只是手动设置该属性。但是,为每个属性执行此操作是很多工作。