我在现有的 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 发出提交。我是一个光滑的新手。