gpt4 book ai didi

java - 使用 OneToMany 时 Spring 返回一个大字符串而不是 List

转载 作者:行者123 更新时间:2023-12-01 18:41:55 25 4
gpt4 key购买 nike

更新:我尝试从 getAuthor() 和 getTopic() 在 Post 实体中返回 null,这似乎已经修复了它,但现在的问题是我不知道 Post 的作者是谁......会吗?使用String usernameOfAuthor而不是Accountauthor是一个更聪明的主意吗?

我有一个帖子实体和一个主题实体,我想对其进行设置,以便一个主题可以有许多帖子,并且一个主题中可以有许多帖子。这是我的代码:

@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
}

现在,当我运行此代码并发出获取所有主题的请求时,这就是它在浏览器中的样子:example

如果我删除 mappedBy='topic'@JoinColumn(name="topic_id", nullable = false),一切正常,我得到一个主题列表作为返回,这很好,但是我的帖子不起作用,我的主题都没有帖子......我在这里做错了什么?

最佳答案

您可能需要添加 @JsonBackReference 以防止 Jackson (json) 无限递归问题。

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

关于java - 使用 OneToMany 时 Spring 返回一个大字符串而不是 List,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59917600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com