假设我们有以下两个实体。
图书馆
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
.