所以我有两个实体,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 包含一些内容(没有递归)。
任何帮助将不胜感激
我发现您应该删除菜谱类中的 @ManyToOne 引用,我不明白为什么菜谱应该映射到用户。用户类引用了食谱列表,这是正确的方法,而且足够了。
也许可以避免在设计中使用双向映射。