JSONify модель в Persistent * включая * идентификатор
Вот модель, которая у меня есть в Persistent:
Tip
text Text
created_at UTCTime
updated_at UTCTime
title Text
category_id CategoryId
И связанные ToJSON
экземпляр (я не мог использовать deriveJSON
):
instance ToJSON Tip where
toJSON (Tip text created_at updated_at title category_id) = object ["text" .= text, "created_at" .= created_at, "updated_at" .= updated_at, "title" .= title, "category_id" .= category_id]
Это почти правильно, за исключением того, что я хочу добавить здесь JSON-код идентификатора подсказки... но его нет нигде в модели! Как бы я это сделал? Есть ли способ пойти от EntityVal
к EntityKey
?
1 ответ
Entity
это сочетание ключа и значения. Если у вас просто есть значение, нет никакого общего способа узнать, какой у него идентификатор. Если у него есть какие-то уникальные ограничения, вы можете использовать это для поиска ключа.
Данный EntityVal
теоретически можно было бы назначить разные идентификаторы в разных серверных базах данных (которые могут даже не иметь одинаковый тип). Или он мог быть создан вручную для вставки, но на самом деле еще не вставлен, поэтому ему не был назначен идентификатор. Tip
значение изначально не имеет идентификатора; это может быть только идентификатор в конкретной базе данных.