次の 2 つのエンティティがあるとします。
としょうかん
public class Library
{
private Collection<Book> books = new ArrayList<Book>();
public boolean add(Book book)
{
return books.add(book);
}
public boolean remove(Book book)
{
return books.remove(book);
}
}
本
public class Book
{
private Library library;
public setLibrary(Library library)
{
this.library = library;
}
}
これは双方向の関係であり、おそらくすぐに壊れます。ライブラリにブックを追加しても、ブックのライブラリは更新されません。また、書籍のライブラリを更新しても、ライブラリは更新されません。
では、この双方向の関係をうまく維持するにはどうすればよいでしょうか。もちろん、add
+remove
で+ を実行することもできますsetLibrary
が、その逆も可能ですが、これはおそらく . で終わるループを引き起こす可能性がありますStackOverflowError
。