有人可以告诉我如何明确处理squeryl中的事务回滚吗?
还有我们如何动态添加或删除squeryl中的列?
...感谢名单
答案 0 :(得分:5)
只是详细说明@didierd的回复。每个事务都绑定了一个会话/连接。您可以访问当前的Session,从而使用以下代码连接:
Session.currentSession.connection
或者,如果您不确定自己是否在交易中
Session.currentSessionOption map {_.connection}
如果您以这种方式回滚交易,则您有责任开始新的交易,或确保不再使用该连接,因此请小心使用。
答案 1 :(得分:1)
您可以访问JDBC的java.sql.Connection
(connection
中的Session
),因此如果您真的无法使用transaction
/ inTransaction
,则可以拨打电话在那里回滚。
通过访问连接,您还可以执行任意SQL请求,从而更改数据库架构,但请注意您的使用squeryl的代码具有静态的,编译时已知的架构。