0
往往是將有其中的關係是雙向的,例如映射實體圖。JPA實體,循環引用和toString()
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方法。
是否有任何優雅的方式(特別是爲了調試目的)以清晰的類似toString的方式打印對象的圖形,而無需注意實施toString()方法以避免循環?
只需打印整個家庭的'home.id'代替。 –
做不注意通常是一個壞主意。請注意。通過協會的toString()方法導航通常是一個壞主意,因爲它會立即導致異常的關聯是懶惰和實體分離。 –