Datomic valueType

时间:2014-09-19 10:37:18

标签: clojure datomic

尝试使用在架构中定义的:threshold属性来持久保存节点实体列表时:

{:db/id #db/id[:db.part/db]
 :db/ident :node/threshold
 :db/valueType :db.type/long
 :db/cardinality :db.cardinality/one
 :db/fulltext false
 :db/doc "Threshold"
 :db.install/_attribute :db.part/db}

我收到以下错误:

CompilerException java.util.concurrent.ExecutionException: 
java.lang.IllegalArgumentException: 
:db.error/wrong-type-for-attribute Value 90 is not a valid :int 
for attribute :node/threshold

我使用以下代码:

(defn store-tree [tree]
  @(d/transact dbconn/conn (into [] (vals tree))))
(store-tree parsed-tree-with-refs)

其中tree是节点名称到节点的映射。

奇怪的是,我使用了来自REPL的节点阈值90的特定实体的EDN并手动交易它,并且它没有任何问题。我用了这段代码:

@(d/transact dbconn/conn [{:db/id (d/tempid :db.part/user),
  :node/threshold 90, :node/location "US"}])

有人可以帮忙吗?

谢谢, 维塔利。

0 个答案:

没有答案