使用什么数据类型,以便1和1.0在Datomic中都有效?

时间:2015-09-26 06:55:47

标签: clojure datomic

      Thanks

当我尝试将{ :db/id #db/id[:db.part/db] :db/ident :outcome/weighting :db/valueType :db.type/float :db/cardinality :db.cardinality/one :db.install/_attribute :db.part/db } 添加到实体时,我收到错误。

  

:message“java.lang.IllegalArgumentException :: db.error / wrong-type-for-attribute Value 1 not a valid:float for attribute:outcome / weighting”

如果我传入1,它就可以正常工作。

我很感谢1.0但是有没有其他方法可以通过Datomic设置避免这种情况,而无需解析传入的EDN并从(= (float? 1) false)调整为1

1 个答案:

答案 0 :(得分:0)

您不能将int和float都存储在Datomic的相同架构属性中。因此,在进行交易之前,您需要将值强制转换为您选择的任何类型(这里可能是float或double)。您可以在执行交易的代码中执行此操作,甚至可以在交易功能中执行此操作。