2

谁能告诉我如何在 squeryl 中明确处理事务回滚?

还有我们如何动态添加或删除 squeryl 中的列?

谢谢...

4

2 回答 2

5

只是为了详细说明@didird 的回应。每个事务都有一个会话/连接绑定。您可以访问当前会话,从而使用如下代码访问连接:

Session.currentSession.connection

或者,如果您不确定自己是否在交易中

Session.currentSessionOption map {_.connection}

如果您确实以这种方式回滚事务,则您有责任启动一个新事务或确保不再使用该连接,因此请谨慎使用。

于 2011-09-01T16:25:15.330 回答
1

您可以访问 JDBC java.sql.Connection( connectionin Session),所以如果您真的不能使用transaction/ inTransaction,您可以在那里调用 rollback。

通过访问连接,您还可以执行任意 SQL 请求并更改数据库架构,但请注意使用 squeryl 的代码具有静态的、编译时已知的架构。

于 2011-09-01T11:28:03.640 回答