Transactions 奥姆莱特&x2B;交易
我在理解DaoManager的默认行为时遇到问题Transactions 奥姆莱特&x2B;交易,transactions,ormlite,Transactions,Ormlite,我在理解DaoManager的默认行为时遇到问题 DaoManager.createDao(connectionSource, theClass); 这需要连接源,而不是连接。 因此,如果我执行以下操作: TransactionManager.callInTransaction( localConnection, connectionSource.getDatabaseType(), new Callable<Void>() { public
DaoManager.createDao(connectionSource, theClass);
这需要连接源,而不是连接。
因此,如果我执行以下操作:
TransactionManager.callInTransaction(
localConnection,
connectionSource.getDatabaseType(),
new Callable<Void>() {
public Void call() throws Exception {
dao.create(user);
dao.create(player);
return null;
}
});
TransactionManager.callInTransaction(
本地连接,
connectionSource.getDatabaseType(),
新的可调用(){
public Void call()引发异常{
创建(用户);
创建(玩家);
返回null;
}
});
事务应限于单个连接(localConnection)。刀是怎么处理的?还是它根本无法处理
事务应限于单个连接(localConnection)。刀是怎么处理的?还是它根本无法处理
人力资源管理。我不能100%确定为什么会暴露连接方法。我要反对它
你真的应该用这个。如果您需要直接使用TransactionManager,我会使用,而不是连接
你可以看一看,它正在保存连接,然后通过一些奥姆莱特魔法被刀使用。因此,在保存的连接上禁用自动提交,然后在批处理任务完成后恢复。我分析了代码库,似乎如果在最初内部请求dao时使用相同的ConnectionSource,将建立一个“savedConnection”,然后强制使用它
如果有人能证实/反驳这一点——或者simly知道如何完全正确地做到这一点——请告诉我 谢谢大家!!我在这篇评论之前写了我的帖子,所以。。。我将看一看callBatchTasks方法。也许已经有一个例子了…:-)