Slick 3.1 - 从 DBIOAction 打印 SQL(插入语句)
Posted
技术标签:
【中文标题】Slick 3.1 - 从 DBIOAction 打印 SQL(插入语句)【英文标题】:Slick 3.1 - Printing SQL from DBIOAction (insert statements) 【发布时间】:2016-01-12 12:23:13 【问题描述】:在 Slick 3.1 中,随着新 API 的完全重新设计,在进行插入时似乎无法查看生成的 SQL 语句。
如果你有这样的事情
val action = DBIO.seq(
SomeTables ++= Seq(TableData(1,"First"),TableData(2,"Second"))
)
您似乎实际上无法从action
中看到生成的 SQL。 result
方法实际上并不存在,如果您不使用DBIO.seq
,statements
的变体将打印?
代替实际值,如果您使用的是DBIO.seq
statements
方法实际上并不存在。
即使使用.transactionally
或.withPinnedSession
之类的方法,它似乎也没有什么不同(但我不知道这应该有什么帮助)。
从所有方法的观察来看,这似乎是不可能的?
【问题讨论】:
这里一样,试图找到一种从 DBIOAction 打印 sql 的方法,但没有运气。希望这里有人指出我们正确的方向。它打印“?”因为它默认为Prepared Statement? 你用的是什么数据库? 文档中有一个方法:slick.lightbend.com/doc/3.0.0/queries.html#querying 3.2 新增功能。然后添加到 log4j 这按预期工作。 【参考方案1】:这不是 Slick 3.1 处理的,您可以查看 source code,但您可以在 Slick 3.2 版本中使用此功能。
如果您有更大的代码库并且在这种情况下无法升级到 3.2,您只需将 this commit 添加到 3.1 源代码,构建并使用它。确保导入提交所需的必要内容。
【讨论】:
以上是关于Slick 3.1 - 从 DBIOAction 打印 SQL(插入语句)的主要内容,如果未能解决你的问题,请参考以下文章
使用 Java+Scala+Slick2D 时“无法从给定的启动配置中找到主要方法”
浅谈Slick- Slick301:我的Slick开发项目设置