我正在使用@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;
    }
}

最佳答案

好了,您的代码中存在几个问题:

  • 您正在将@JsonIgnore注释与字段及其字段一起使用
    访问器(getter和setter),您不应这样做,仅映射一个
    他们足够了。我建议您仅将getter方法与@JsonIgnore
  • 另一件事是您的Titelgetter方法不正确
    实现,它应该返回Titel字段,但您正在返回this.verein,这是完全错误的,并且会弄乱
    您的代码,您需要对其进行更正。

  • 我在这里建议的是仅将@JsonIgnore 一起使用您需要更正的getter方法:
    @JsonIgnore
    public Titel getTitel() {
        return this.Titel;
    }
    

    07-25 23:56