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