JSONify Persistent *中的模型,包括* id

时间:2013-04-26 03:53:29

标签: haskell

这是我在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化Tip的ID ...但它不在模型的任何地方!我该怎么做?有没有办法从EntityVal转到EntityKey

1 个答案:

答案 0 :(得分:2)

Entity是键和值的配对。如果您只是拥有该值,则没有通用的方法来了解它具有的ID。如果它有任何唯一约束,您可以使用它来查找密钥。

理论上,给定的EntityVal可以在不同的后端数据库中分配不同的ID(甚至可能都没有相同的类型)。或者它可以手动构造为插入但尚未实际插入,因此尚未分配id。 Tip值并非天生拥有 ID;它只能在特定的数据库中有一个id。