1
假设我们有两个类:软件和标签。 软件可能与许多标签有关,每个标签可能与许多软件有关。 所以,我们有多对多的关系。休眠多对多,重加操作
我们使用Hibernate和注解:
@Entity
class Software .. {
@ManyToMany
public List<Tag> tags = new LinkedList<Tag>();
...
}
@Entity
class Tag .. {
@ManyToMany(mappedBy = "tags")
List<Software> softwares = new LinkedList<Software>();
...
}
然后,每次当我们要对现有的标签添加到软件,我们需要把这个软件添加到该标签(靠右许多一对多结构体)。就像这样:
class Software {
...
public void add(Tag tag) {
tags.add(tag);
tag.add(software);
}
...
}
如果已经涉及到1000个0000该软件添加标签,然后在那一刻,我们称之为tag.add(sofware),标签类将下载所有这些软件到内存中以便只需添加一个软件。对?
问题:如何避免这种情况的最佳做法是什么?