{
: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
}
Run Code Online (Sandbox Code Playgroud)
我尝试添加1到实体时收到错误.
:message"java.lang.IllegalArgumentException :: db.error/wrong-type-for-attribute Value 1 not a valid:float for attribute:outcome/weighting"
如果我进去,它工作正常1.0.
我很欣赏,(= (float? 1) false)但有没有其他方法我可以通过Datomic设置避免这种情况,而无需解析传入的EDN并调整1为1.0?
您无法将整数和浮点数存储在 Datomic 中的同一架构属性中。因此,在进行交易之前,您需要将值强制转换为您选择的任何类型(这里可能是浮点型或双精度型)。您可以在执行事务的代码中执行此操作,甚至可以在事务函数中执行此操作。