java循环引用jackson,使用Jackson和Spring Boot的JPA实体中的循环引用

I have two web services: "Proprietario" and "Veiculo", the "Proprietario" contains a list of "Veiculo" and "Veiculo" contains a "Proprietario".

The problem is that when I make a request calling the findAll method of "Proprietario", when trying to serialize, Jackson goes into infinite loop throwing exception. The same happens when I try to call the findAll method of "Veiculo".

I would like it when I call you to call the findAll of the "Veiculo", bring along the "Proprietario", but do not bring the "Veiculo" list inside the "Proprietario". The opposite of when I call the findAll method of "Proprietario", I'd like to bring the "Veiculo" list, but do not bring the "Proprietario" into the "Veiculo".

I tried to use some Jackson annotations, but none solves the conflict on both sides.

@Getter

@Setter

@Entity

@EqualsAndHashCode(of = "id")

public class Veiculo {

@Id

@GeneratedValue(strategy= GenerationType.IDENTITY)

private Long id;

@Column(length = 10)

private String placa;

@Column(nullable = false)

private Integer ano;

@ManyToOne

@JoinColumn

private Proprietario proprietario;

}

@Getter

@Setter

@Entity

@EqualsAndHashCode(of = "id")

public class Veiculo {

@Id

@GeneratedValue(strategy= GenerationType.IDENTITY)

private Long id;

@Column(length = 10)

private String placa;

@Column(nullable = false)

private Integer ano;

@ManyToOne

@JoinColumn

private Proprietario proprietario;

}

解决方案

Try using these two annotations

@JsonManagedReference and @JsonBackReference

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值