簡體   English   中英

使用 OneToMany 時,Spring 會返回一大串數據而不是 List

[英]Spring returning a big String of data instead of List when using OneToMany

更新:我嘗試從 getAuthor() 和 getTopic() 在 Post 實體中返回 null 並且這似乎已經解決了它,但現在問題是我不知道 Post 的作者是誰......它會更聰明嗎想法只使用String usernameOfAuthor而不是Account author

我有 Post 實體和一個 Topic 實體,我想對其進行設置,以便一個 Topic 可以有多個 Posts,多個 Posts 可以在一個 Topic 中。這是我的代碼:

@Entity
@Table(name="topic")
public class Topic extends TimeStampModel {
    @Id
    @Column
    @GeneratedValue
    private Long id;

    @Column(nullable = false)
    private String name;

    @Column(nullable = false)
    private String codeName;

    @Column
    private String description;

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "topic")
    private List<Post> posts;

//getters and setters
}
@Entity
@Table(name="post")
public class Post extends Likeable {
    @Id
    @GeneratedValue
    @Column
    private Long id;

    @Column(nullable = false)
    private String title;

    @Column
    private String text;

    @ManyToOne
    @JoinColumn(name="topic_id", nullable = false)
    private Topic topic;

    @ManyToOne
    private Account author;

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "post")
    List<Comment> topLevelComments;

//getters and setters
}

現在,當我運行這段代碼,並請求獲取所有主題時,這就是我的瀏覽器中的樣子: 例子

如果我刪除了mappedBy='topic'@JoinColumn(name="topic_id", nullable = false) ,一切正常,我得到一個主題列表作為回報,這很好,但是我的帖子不t 工作,我的主題都沒有帖子......我在這里做錯了什么?

您可能需要添加 @JsonBackReference 以防止 Jackson (json) 無限遞歸問題。

@JsonBackReference 
@ManyToOne
@JoinColumn(name="topic_id", nullable = false)
private Topic topic;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM