2016-06-07 108 views
3

我得到這個當我打電話辦理: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堆棧跟蹤提升到一個新的水平。

+0

什麼是您的datomic查詢? –

+0

你能提供你的電話交易內容嗎? – Marshall

回答

4

Datomic支持數據庫功能。因此,讓我們說你安裝稱爲數據庫功能「:富/酒吧」,你會調用它正是如此交易:

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

什麼這個錯誤的意思是,它認爲你正在調用數據庫功能,但該功能不存在。在這種情況下,它認爲函數名稱是71

查看您正在處理的數據並確保其格式正確。例如,我在通過地圖0​​而不是[{:my/key 42}]時看到此錯誤。交易的輸入應該始終是一個數據序列,即使你正在進行的交易是一個hashmap。

+0

是的。這是這樣的。我做了一些愚蠢的事情,導致錯誤的數據被髮送到事務處理。 – Kevin