当我调用 transact 时,我得到了这个:
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 的输入应该始终是一个数据序列,即使您正在处理的只是一个哈希图。
| 归档时间: |
|
| 查看次数: |
851 次 |
| 最近记录: |