我想查找最近对连接进行的事务。以下似乎没有给出正确的日期:
(require '[datomic.api :as datomic])
(-> conn datomic/db datomic/basis-t datomic/t->tx (java.util.Date.))
答案 0 :(得分:4)
我明白了:
(defn last-transaction-time [db]
(let [t (-> db datomic/basis-t)]
[t (ffirst (datomic/q '[:find ?t
:in $ ?tx
:where [?tx :db/txInstant ?t]]
db
(datomic/t->tx t)))]))
答案 1 :(得分:0)
您可能希望let
线程函数的结果最多为datomic/t->tx
。然后使用它来查询事务实体(为每个事务隐式创建的实体)。每个事务实体都有一个:db/txInstant
属性,在事务期间隐式添加该属性。该属性的值是您希望传递给java.util.Date.
静态方法的值。
答案 2 :(得分:0)
应该容易得多
(d/q
'[:find (max 1 ?tx)
:where
[?tx :db/txInstant]]
db)