1

我有一个包含以下枚举的 datomic 数据库

{:db/id #db/id[:db.part/db]
  :db/ident :demographics/gender
  :db/valueType :db.type/ref
  :db/cardinality :db.cardinality/one
  :db/doc "A person's gender enum reference"
  :db.install/_attribute :db.part/db}

;; :demographics/gender enum values
{:db/id #db/id[:db.part/user]
  :db/ident :demographics.gender/male}

{:db/id #db/id[:db.part/user]
  :db/ident :demographics.gender/female}

{:db/id #db/id[:db.part/user]
  :db/ident :demographics.gender/other}

现在说我这样做:

(d/entity db ...)

并获取包含实体及其属性的惰性映射,包括上面的枚举。我现在想要获取作为查询响应得到的枚举值的字符串表示形式。我的想法是这样做:

(def ^:private gender-map {:demographics.gender/male "Male" 
                           :demographics.gender/female "Female" 
                           :demographics.gender/other "Other"})

然后这个

(gender-map (lazy-map :demographics/gender))

然而,这并没有奏效。这样做的正确方法是什么?

谢谢

4

1 回答 1

0

lazy-map在您的示例中未定义。如果是返回的结果,(d/entity ...)检查它是否有一个有效的:demographics/gender条目。

于 2014-04-24T11:55:50.220 回答