ORMLite +交易

eve*_*zon 3 transactions ormlite

我在理解DaoManager的默认行为时遇到问题.

DaoManager.createDao(connectionSource, theClass);
Run Code Online (Sandbox Code Playgroud)

这需要一个connectionSource - 而不是一个连接.所以,如果我做以下事情:

TransactionManager.callInTransaction(
    localConnection,
    connectionSource.getDatabaseType(),
    new Callable<Void>() {
        public Void call() throws Exception {
            dao.create(user);
            dao.create(player);
                return null;
            }
    });
Run Code Online (Sandbox Code Playgroud)

该事务应限于单个连接(localConnection).DAO如何处理?或者它根本不处理它?

谢谢!

Gra*_*ray 5

该事务应限于单个连接(localConnection).DAO如何处理?或者它根本不处理它?

人力资源管理.我不是100%确定连接方法暴露的原因.我要弃用它.

你真的应该使用这个dao.callBatchTasks(...)方法.如果你需要使用TransactionManager直接,我会使用的,需要一个方法ConnectionSource,连接.

您可以查看源代码,TransactionManager.callInTransaction(...)看看它是否正在保存连接,然后DAO通过某些ORMLite魔术使用该连接.因此,在已保存的连接上禁用自动提交,然后在批处理任务完成后恢复.