多くの場合、関係が両方の方法でマッピングされるエンティティ グラフがあります。
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 のような方法でオブジェクトのグラフを出力するエレガントな方法 (特にデバッグ目的) はありますか?