【发布时间】:2012-08-14 08:55:18
【问题描述】:
我有包含“首选项”列的数据类/表“用户”
CREATE table "user";
ALTER TABLE "user" ADD COLUMN preferences TEXT;
首选项类型是 TEXT,我在其中存储 JSON。
public class User extends AbstractEntity{
public String preferences;
}
所以user.preferences 的值为"{notifyByEmail:1, favouriteColor:"blue" }"
我怎样才能用一些注释来包装它,以便我可以像访问它一样访问它
user.preferences.notifyByEmail
或者不需要包装到数据对象中
user.preferences.get("notifByEmail");
user.preferences.set("notifByEmail",true);
我想可能有一些 Jackson 注释可以添加到字段中 喜欢
@JsonGenerate
public String preferences;
我对 JPA 还很陌生,而且文档很繁琐。
我相信我的情况很常见。谁能举个例子?
【问题讨论】:
-
希望将此数据存储为 JSON 字符串而不是单独的不同字段(此处为布尔和枚举类型)的理由是什么?
-
理由是我不想将每个键值偏好都支持为单独的字段。偏好键:值正在增长和挂起,其中有很多。为它们中的每一个更改模型或将字段添加到数据库中都是多余的。
-
您是否考虑过使用属性表来记录值?用例确实很常见,但您提出的解决方案不太适合关系模型。
标签: json hibernate jpa orm jackson