如何:在squeryl中进行事务回滚

时间:2011-09-01 05:09:47

标签: scala squeryl

有人可以告诉我如何明确处理squeryl中的事务回滚吗?

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

...感谢名单

2 个答案:

答案 0 :(得分:5)

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

Session.currentSession.connection

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

Session.currentSessionOption map {_.connection}

如果您以这种方式回滚交易,则您有责任开始新的交易,或确保不再使用该连接,因此请小心使用。

答案 1 :(得分:1)

您可以访问JDBC的java.sql.Connectionconnection中的Session),因此如果您真的无法使用transaction / inTransaction,则可以拨打电话在那里回滚。

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