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 значение изначально не имеет идентификатора; это может быть только идентификатор в конкретной базе данных.

Другие вопросы по тегам