You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scala Playframework Slick如何传递PostgreSQL参数?

我来帮你搞定这个问题!要在Slick的配置里传递PostgreSQL的idle_in_transaction_session_timeout参数,有两种可靠的方式,你可以根据自己的偏好选择:

方法1:直接追加到JDBC URL中

PostgreSQL的JDBC驱动支持在URL后面通过查询参数的方式传递配置项,你只需要在原URL末尾加上?idle_in_transaction_session_timeout=XXX(如果已经有其他参数,就用&连接)。注意这个参数的单位是毫秒,比如设置30秒超时就是30000。

修改后的配置示例:

slick.dbs.default.profile="slick.jdbc.PostgresProfile$"
slick.dbs.default.db.driver="org.postgresql.Driver"
slick.dbs.default.db.url="jdbc:postgresql://localhost:5432/your_db?idle_in_transaction_session_timeout=30000"
slick.dbs.default.db.user="your_user"
slick.dbs.default.db.password="your_password"
方法2:通过Slick的db.properties配置

如果你希望参数配置更清晰,也可以用Slick提供的properties节点单独配置每个JDBC参数,这样管理多个参数时更方便:

修改后的配置示例:

slick.dbs.default.profile="slick.jdbc.PostgresProfile$"
slick.dbs.default.db.driver="org.postgresql.Driver"
slick.dbs.default.db.url="jdbc:postgresql://localhost:5432/your_db"
slick.dbs.default.db.user="your_user"
slick.dbs.default.db.password="your_password"
# 添加这一行来配置超时
slick.dbs.default.db.properties.idle_in_transaction_session_timeout=30000
注意事项
  • 这个参数仅支持PostgreSQL 9.6及以上版本,如果你的PostgreSQL版本低于9.6,需要先升级版本才能使用。
  • 确认你使用的org.postgresql.Driver版本是较新的(至少42.0.0以上),旧版本可能对这个参数的支持有问题。

之前你的尝试无效,大概率是因为没有把参数放在正确的位置——要么没追加到URL的查询参数里,要么用了错误的配置键,试试上面两种方法应该就能解决了。

内容的提问来源于stack exchange,提问作者Ikrom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:38:39