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

这是我在
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?

最佳答案 实体是密钥和值的配对.如果您只是拥有该值,则没有通用的方法来了解它具有的ID.如果它有任何唯一约束,您可以使用它来查找密钥.

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

点赞