假设您正在使用带有标准配置和开箱即用的 DB4O - 这意味着您正在使用 DB4O 的标准内部 id 方案,如下所示**。
首先,作为一个假设,当更新或插入一个对象到数据库中时,程序员只有一个选择,调用“objectContainer.store(object)”。
现在,DB4O 如何知道是更新数据库中的现有对象,还是插入一个全新的对象?我的猜测是 DB4O 会查看对象的内部 id 是否不为空。
但是,我也可以看到程序员有可能首先从数据库中提取对象,然后更新它。所以我的问题是,我们如何才能可靠地更新 DB4O 数据库中的对象,而无需先将其拉入 Java 内存?
*这篇 DB4O 文章并没有真正回答我的问题
**这是非常有用的: