数据错误信息
Datomic error message
我在调用交易时收到此信息:
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 堆栈跟踪提升到一个新的水平。
Datomic 支持数据库功能。因此,假设您安装了一个名为“:foo/bar”的数据库函数,您将在事务中这样调用它:
[[:foo/bar arg1 arg2 ...]]
此错误的意思是它认为您正在调用数据库函数,但该函数不存在。在这种情况下,它认为函数名称是 71
。
查看您正在处理的数据并确保其格式正确。例如,我在将地图作为 {:my/key 42}
而不是 [{:my/key 42}]
传递时看到了这个错误。 transact 的输入应该始终是一个数据序列,即使您正在处理的只是一个 hashmap。
我在调用交易时收到此信息:
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 堆栈跟踪提升到一个新的水平。
Datomic 支持数据库功能。因此,假设您安装了一个名为“:foo/bar”的数据库函数,您将在事务中这样调用它:
[[:foo/bar arg1 arg2 ...]]
此错误的意思是它认为您正在调用数据库函数,但该函数不存在。在这种情况下,它认为函数名称是 71
。
查看您正在处理的数据并确保其格式正确。例如,我在将地图作为 {:my/key 42}
而不是 [{:my/key 42}]
传递时看到了这个错误。 transact 的输入应该始终是一个数据序列,即使您正在处理的只是一个 hashmap。