JAVA SpringBoot 实体数据递归

问题描述 投票:0回答:1

所以我有两个实体,Recipe 和 User。在食谱中我们有 User 对象。用户对象有一个列表,其中包含他编写的所有食谱。

配方实体:

@Entity
@Table(name = "recipes")
public class Recipe {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    @ManyToOne
    @JoinColumn(name = "user_id")
    private User user;

用户实体:

@Entity
@Table(name = "users")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;

    @OneToMany(mappedBy = "user")
    private List<Recipe> recipesWritten;

当我获取实体 Recipe 时,它返回一个 User 对象,其中包含用户创建的所有 Recipe 对象的列表,并且它会递归地进行。

我已经看到了 @JsonManagedReference 的修复,它在一定程度上修复了问题,但在调试时我注意到该对象仍然具有递归,我希望 JSON 包含一些内容(没有递归)。

任何帮助将不胜感激

java spring spring-boot spring-data-jpa entities
1个回答
0
投票

我发现您应该删除菜谱类中的 @ManyToOne 引用,我不明白为什么菜谱应该映射到用户。用户类引用了食谱列表,这是正确的方法,而且足够了。

也许可以避免在设计中使用双向映射。

© www.soinside.com 2019 - 2024. All rights reserved.