代码之家  ›  专栏  ›  技术社区  ›  edoloughlin

回滚CLJ记录事务

  •  0
  • edoloughlin  · 技术社区  · 14 年前

    我正在使用CLJ记录/事务2包装两个记录创建。出错时,我正在使用clojure.contrib.condition/raise抛出异常,但这不会回滚任何内容。有什么想法吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   edoloughlin    14 年前

    (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")))))
    
    推荐文章