Datomic错误消息

时间:2016-06-07 23:18:45

标签: clojure datomic

当我打电话给我时,我得到了这个:

datomic.impl.Exceptions$IllegalArgumentExceptionInfo: :db.error/not-a-data-function Not a data function: 71 data: {:db/error :db.error/not-a-data-function} java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: :db.error/not-a-data-function Not a data function: 71

试图告诉我的错误消息是什么?我的数据在任何地方都没有“71”,所以啊,嗯...是的。这会将clojure堆栈跟踪提升到一个新的水平。

1 个答案:

答案 0 :(得分:4)

Datomic支持数据库功能。所以,让我们说你安装了一个名为"的数据库函数:foo / bar"你会在交易中称之为:

[[:foo/bar arg1 arg2 ...]]

这个错误说的是它认为你正在调用数据库函数,但该函数不存在。在这种情况下,它认为函数名称是71

查看您正在处理的数据并确保其格式正确。例如,我在将地图作为{:my/key 42}而不是[{:my/key 42}]传递时看到了此错误。 transact的输入应该始终是一个数据序列,即使你所有的交易都是一个hashmap。