通常会有实体图,其中关系以两种方式映射,例如。
class Home {
@Id
private Long id;
@OneToMany(mappedBy = "home")
Set<Room> rooms;
@Override
public String toString() {
return "Home [id=" + id + ", rooms=" + rooms + "]";
}
}
class Room {
@Id
private Long id;
@ManyToOne
private Home home;
@Override
public String toString() {
return "Room [id=" + id + ", home=" + home + "]";
}
}
话虽如此,如果我们使用 IDE 的自动生成 toString 方法,我们可能会无意中导致 toString() 方法中的深度递归,因为 Home 将打印 Rooms,而每个 Room 将依次打印其 Home。
是否有任何优雅的方式(特别是用于调试目的)以清晰的、类似 toString 的方式打印对象图,而不必注意实现 toString() 方法以避免循环?