Clojure Datomic错误消息

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

我打电话给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-data-function非数据函数:71


错误消息试图告诉我什么?我的数据里没有“71”,所以啊,嗯。。。是 啊这将clojure堆栈跟踪提升到一个新的级别。

Datomic支持数据库功能。假设您安装了一个名为“:foo/bar”的数据库函数,您可以在事务中调用它,因此:

[[:foo/bar arg1 arg2…]

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


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

你的datomic查询是什么?你能提供你打电话给transact的内容吗?是的。是这样的。我做了一些愚蠢的事情,导致错误的数据被发送到transact。