0
我正在使用clj-record/transaction两个包装两个记录创建。错误时,我使用clojure.contrib.condition/raise来引发异常,但这不会回滚任何内容。有任何想法吗?回滚clj记录事务
我正在使用clj-record/transaction两个包装两个记录创建。错误时,我使用clojure.contrib.condition/raise来引发异常,但这不会回滚任何内容。有任何想法吗?回滚clj记录事务
我需要使用clojure.contrib.sql /设置为只回滚:
(ns my.namespace.txtest
(:use clojure.contrib.condition)
(:require clj-record.boot
[clj-record.callbacks.built-ins :as cb]
[clj-record.core :as rec]
[clj-record.validation.built-ins :as valid]
[clojure.contrib.sql :as sql]))
(def db {:classname "com.mysql.jdbc.Driver"
:subprotocol "mysql"
:user "mydb"
:password "password"
:subname "//localhost/mydb"})
(defn do-something
(rec/transaction db
(do-something)
(if (some-error-test)
(do
(sql/set-rollback-only)
(raise :type "some-error" :message "Oops")))))
我要指出,我在一个应用程序错误,不参照完整性问题引发异常。 – edoloughlin 2010-11-26 00:09:42