我正在使用@JsonIgnore并仍然收到StackoverflowError。
有一个循环,注释被忽略。
@Entity
@NamedQuery(name="Buch.findAll", query="SELECT b FROM Buch v")
public class Buch implements Serializable {
private static final long serialVersionUID = 1L;
...
//bi-directional many-to-one association to Titel
@OneToOne(mappedBy="buch")
@JsonIgnore
private Titel Titel;
...
@JsonIgnore
public Titel getTitel() {
return this.verein;
}
@JsonIgnore
public void setTitel(Titel titel) {
this.titel= titel;
}
}
答案 0 :(得分:2)
您的代码中存在多个问题:
@JsonIgnore
注释
访问者(getter和setter),你应该这样做,只映射一个
他们就足够了。我建议你只映射getter方法
@JsonIgnore
。Titel
getter
方法不正确
已实现,它应返回Titel
字段,但您将返回
this.verein
,这是完全错误的,会搞乱逻辑
你的代码,你需要纠正它。我建议在这里使用@JsonIgnore
与您需要更正的getter方法:
@JsonIgnore
public Titel getTitel() {
return this.Titel;
}
答案 1 :(得分:1)
我认为这个代码不起作用标题不会设置(杰克逊ex),因为你在setter上创建一个@JsonIgnore用@JsonSetter改变它并在你的getter上添加@JsonIgnore:
@JsonIgnore
public Titel getTitel() {
return this.verein;
}
@JsonSetter
public void setTitel(Titel titel) {
this.titel= titel;
}