使用jsonbackreference属性反序列化实体

时间:2018-10-06 14:19:09

标签: json hibernate rest spring-boot

我有一个代理类,它作为父子关系与其自身具有双向关系。实体看起来像这样。

@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时,该属性不会序列化。反正我可以做这个工作?

现在,我只是手动设置该属性。但是,为每个属性执行此操作是很多工作。

0 个答案:

没有答案