@JsonIdentityInfo首次出现后停止序列化

时间:2018-03-18 11:38:26

标签: java json spring jackson

我有两个实体:

@JsonIdentityInfo(
      generator = ObjectIdGenerators.PropertyGenerator.class, 
      property = "numeroOfferta")
@Entity
@Table(name=DatabaseConstants.TABELLA_OFFERTE)
public class Offerta {

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private BigInteger numeroOfferta;

@ManyToOne(fetch=FetchType.EAGER)
private Cliente cliente;

private Double importoOfferta;

@OneToMany(fetch = FetchType.EAGER, mappedBy = "offerta")
private Set<Ordine> ordini;

@JsonIdentityInfo(
      generator = ObjectIdGenerators.PropertyGenerator.class, 
      property = "id")
@Entity
@Table(name=DatabaseConstants.TABELLA_ORDINI)
public class Ordine {

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private BigInteger id;

private String numeroOrdine;

@ManyToOne(fetch=FetchType.EAGER)
private Offerta offerta;

private String stato;

@OneToOne(fetch= FetchType.EAGER)
private Binder binder;

ORDINE和OFFERTA对象之间存在多对一关系(更多ORDINE到一个OFFERTA)。 当实体在JSON中序列化时,如果有多个ORDINE,则只显示第一个ORDINE,而其他ORDINE仅显示为其ID。

我需要的是序列化ORDINE及其OFFERTA,而不必返回ORDINE。

@JsonIdentityInfo的使用是否正确? 任何人都可以解释所描述的行为吗?

0 个答案:

没有答案