Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
例如,我有以下两个表的数据库:Home 和 Person。这些表之间存在一对多的关系。许多人住在一个房子里。
现在,假设以下情况。我从数据库加载一个人,结果我加载了这个人居住的房子。然后我加载另一个住在同一家的人。问题是我正在加载什么:一个新的家庭对象或为第一人加载的相同对象?为什么?
同一个 Home 对象。Hibernate 通过 PRIMARY KEY 跟踪它已经拥有哪些对象,当 Person 构造函数来填充 Home 时,将使用对现有对象的引用。
另一方面,您应该注意 Home 可能会“懒惰地”获取,在这种情况下,只有这个 Home 的代理(占位符)将是两个 Person 的字段。