4

我在现有的 Spring 应用程序中使用 Slick,并使用Database.forDataSource(ds). 数据源中的连接池配置为 auto-commit = false,我不知道如何让 Slick 3.0 向 MySQL 发送提交。

我只是从 2.0 -> 3.0 升级,我过去常常session.withTransaction让 Slick 即使在一次更新时也发送提交,但即使使用.transactionally现在似乎也不起作用。对于单个声明来说,这似乎也不合适?

我应该如何将当前池与 Slick 集成?或者我应该做一个新的游泳池?

似乎可行的一件事是用代理包装数据源并在那里设置数据源:

final LazyConnectionDataSourceProxy result =
  new LazyConnectionDataSourceProxy(newDataSource());
result.setDefaultAutoCommit(true);

但是,一旦使用了一次连接,我的所有查询都会得到 2 次自动提交:

SET autocommit=0
SET autocommit=1

这目前有效,但由于额外的陈述,这似乎并不理想。请让我知道继续进行的最佳方式,以及我是否可以告诉 Slick 发出提交。我是一个光滑的新手。

4

0 回答 0