Clojure Datomic错误消息
我打电话给transact时收到了这个:Clojure Datomic错误消息,clojure,datomic,Clojure,Datomic,我打电话给transact时收到了这个: datomic.impl.Exceptions$IllegalArgumentExceptionInfo::db.error/not-a-data-function非数据函数:71 数据:{:db/error:db.error/not-a-data-function} java.util.concurrent.ExecutionException:java.lang.IllegalArgumentException::db.error/not-a-dat
datomic.impl.Exceptions$IllegalArgumentExceptionInfo::db.error/not-a-data-function非数据函数:71
数据:{:db/error:db.error/not-a-data-function}
java.util.concurrent.ExecutionException:java.lang.IllegalArgumentException::db.error/not-a-data-function非数据函数:71
错误消息试图告诉我什么?我的数据里没有“71”,所以啊,嗯。。。是 啊这将clojure堆栈跟踪提升到一个新的级别。Datomic支持数据库功能。假设您安装了一个名为“:foo/bar”的数据库函数,您可以在事务中调用它,因此:
[[:foo/bar arg1 arg2…]
这个错误的意思是,它认为您正在调用一个数据库函数,但该函数不存在。在这种情况下,它认为函数名是71
查看您正在处理的数据,确保其格式正确。例如,我在将映射作为
{:my/key 42}
而不是[{:my/key 42}]
传递时看到了这个错误。transact的输入应该始终是一个数据序列,即使您正在处理的只是一个hashmap 你的datomic查询是什么?你能提供你打电话给transact的内容吗?是的。是这样的。我做了一些愚蠢的事情,导致错误的数据被发送到transact。