我发现没有提交的调用存储或没有存储的调用提交都可以将数据写入磁盘。在我看来,store用于更新容器中的对象或将新创建的obj放入容器中。提交磁盘写入作业。
我没有使用TP& TA,我设置了足够的updateDepth& minimumActivationDepth级别。我观察到当我调用store(obj)时,会调用java.io.RandomAccessFile方法。数据应写入磁盘。
那么制作2个函数的目的是什么:存储和提交?为什么不做一个api,比如说:save()?
答案 0 :(得分:0)
这些方法有两个不同的任务:
Store():告诉db4o您要存储/更新此对象。但是,这只会对事务进行更改。
Commit():使所有更改成为永久更改并启动新事务。如果没有提交调用,Store方法将无效。 (注意.commit由close / dispose隐式调用)。 如果您认为发生了错误或错误,您可以调用.Rollback来取消所有更改。
您可以阅读更多有关网上交易的信息,大量示例。
这没什么特别的,很多数据库都使用这种语义。几乎所有SQL,Object和其他数据库。