问题描述
学生:
@Entity
@Table(name = "Student")
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
long id;
...
@JsonManagedReference
@OnetoOne(cascade = CascadeType.ALL)
@JoinColumn(name = "room_id",referencedColumnName = "id")
private Room room;
...
房间:
@Entity
@Table(name = "Room")
public class Room {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
long id;
...
@JsonBackReference
@OnetoOne(mappedBy = "room")
private Student student;
...
我和很多人一样面临着同样的问题:尝试在控制器中检索Student时,存在无限递归。 (学生->房间->学生->房间->...。)
我已经尝试使用@JsonManagedReference
和@JsonBackReference
,但是它并没有任何改变,我真的需要Student中的空间才能在前端的同一张桌子上显示它。 / p>
处理此问题的最佳方法是什么?
我考虑在不使用Student的情况下创建一个实体RoomShortDTO,但这会增加我(简单)应用程序的复杂性,并且还会降低性能,因为我必须在每次API调用时都映射对象。
我还可以向“房间”实体中的“学生”添加一个@JsonIgnore
,但是我还需要在前端列表“房间”中有一个表格及其相关的学生。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)