Apache Common Lang ReflectionToStringBuilder を使用して、エンティティの toString を再帰的に提供しています。
わずかに変更された出力を提供するために使用しているカスタム ToStringStyle があり、表示したくない変数をいくつか省略しています。
私の質問は、特定のオブジェクト タイプに関するものです。印刷する特定の属性を指定できますか。
例: ID 値を持つ 2 つの Person オブジェクトと、BestFriend という Relationship オブジェクトがあります。
public class Person {
int id;
String name;
int age;
Person bestfiend;
public void setBestFriend(Person bestFriend){
this.bestfiend = bestFriend;
}
}
現在何が起こっているかというと、2 つの Person オブジェクトを Bestfriend にリンクすると、ReflectionToStringBuilder が Bestfriend の値に対して Person オブジェクト全体を書き込んでいます。
Person[
id = 0001
name = John
age = 25
bestFriend=Person@25eb3d2[
id = 0002
name = Mary
age = 29
]
]
すべてのリレーションシップ オブジェクトについて、Person オブジェクト全体ではなく ID の値を提供するように指定できますか?
Person[
id = 0001
name = John
age = 25
bestFriend= 0002