我正在开发一个使用DataNucleus JDO
作为其ORM solution
的应用程序。我有一个方法可以执行以下操作:
Obj obj = persistenceManager.getObjectById(Object.class, id);
persistenceManager.deletePersistent(obj);
...
persistenceManager.flush()
...
String sql = ...;
Query query = persistenceManager.newQuery("javax.jdo.query.SQL", sql);
query.execute();
以上所有内容都在一次交易中运行。我了解JDO
在交易结束前不会对datastore
提交更改,但我认为调用flush()
将flush
删除datastore
{1}}以便我的`查询不再返回它。但是,这不是我所看到的。
我有什么遗失的东西吗?另外,作为一个附带问题,如果在事务中的刷新后发生异常,那么将flushed
更改为database
并flush()
为rolled back
吗?