[英]Spring Data Repository does not delete Entity when using @OneToMany Annotations
[英]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.