谁能告诉我如何在 squeryl 中明确处理事务回滚?
还有我们如何动态添加或删除 squeryl 中的列?
谢谢...
只是为了详细说明@didird 的回应。每个事务都有一个会话/连接绑定。您可以访问当前会话,从而使用如下代码访问连接:
Session.currentSession.connection
或者,如果您不确定自己是否在交易中
Session.currentSessionOption map {_.connection}
如果您确实以这种方式回滚事务,则您有责任启动一个新事务或确保不再使用该连接,因此请谨慎使用。
您可以访问 JDBC java.sql.Connection
( connection
in Session
),所以如果您真的不能使用transaction
/ inTransaction
,您可以在那里调用 rollback。
通过访问连接,您还可以执行任意 SQL 请求并更改数据库架构,但请注意使用 squeryl 的代码具有静态的、编译时已知的架构。