我有数据类/表“ User”,其中有“ preferences”列
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相当陌生,文档非常丰富。
我相信我的情况很普遍。谁能举任何例子?
老实说,我认为最好的解决方案是为属性创建一个单独的表(首选项)。
+------------+
| preference |
+------------+---------+------+-----+
| Field | Type | Null | Key |
+------------+---------+------+-----+
| user_id | bigint | NO | PRI |
| key | varchar | NO | PRI |
| value | varchar | NO | |
+------------+---------+------+-----+
您可以这样在您的实体中进行映射:
@Entity
public class User
{
@Id
private Long id;
@ElementCollection
@MapKeyColumn(name = "key")
@Column(name = "value")
@CollectionTable(name = "preference",
joinColumns = @JoinColumn(name = "user_id"))
private Map<String, String> preferences;
}
这样,您的数据库就可以更规范化,而您也不必无所事事,例如将首选项存储为JSON之类的“创意解决方案”。
问题内容: 我是C ++的新手。使用序列化和反序列化类型数据的最简单方法是什么。我发现了一些使用示例,但它们对我来说是晦涩的。 问题答案: 请注意,将键解释为路径,例如,将对“ ab” =“ z”放置将创建{“ a”:{“ b”:“ z”}} JSON,而不是{“ ab”:“ z”} 。否则,使用是微不足道的。这是一个小例子。
问题内容: 我很好奇序列化和反序列化的方式。我使用关键字“ json”和“ tuple”进行搜索,但找不到所需的内容。 问题答案: 我通过和Json.net进行测试,测试代码如下。结果显示可序列化和可反序列化。因此,我可以在应用程序中使用它们。 测试代码 注释 在将序列化到字符串{“项目1”:“一”,“项目2”:“嘻嘻”,“项目3”:真正},并且它可以被反序列化回类型。
问题内容: 我正在寻找一种在Swift中自动序列化和反序列化类实例的方法。假设我们定义了以下类…… …和实例: 的JSON表示形式如下: 现在,这是我的问题: 我如何序列化实例并获取上面的JSON,而不必手动将类的所有属性添加到变成JSON的字典中? 我如何反序列化上面的JSON并获取静态类型为类型的实例化对象?同样,我不想手动映射属性。 这是使用Json.NET在C#中执行此操作的方法: 问题答
问题内容: 我有一个问题。我想使用JAXB将一个对象转换为另一个对象。就像在中,我有一个class 和另一个class ,它们都有相同的参数,实际上都是相同的(复制粘贴),但是包不同。我想使用进行它们之间的转换。 怎么做,请帮帮我。 问题答案: 您可以执行以下操作。 注意: 不需要利用JAXBSource将数据具体化为XML。 它在对象模型上不需要任何注释。 com.home.Student co
有没有一种方法可以指定不同的序列化/反序列化JSON字段名,而不必显式地写出getter和setter方法,或许可以使用lombok getter和setter? 与此示例类似,下面的代码允许将传入的JSON反序列化为不同的POJO字段名。它还会使POJO字段名序列化为: 但这当然是不成立的。
问题内容: 我注意到存储在Redis中的某些序列化对象在反序列化方面遇到问题。 当我对Redis中存储的对象类进行更改时,通常会发生这种情况。 我想了解问题,以便为解决方案设计一个清晰的方案。 我的问题是,什么导致反序列化问题?移除公共/私人财产会引起问题吗?也许添加新属性?向类添加新功能会产生问题吗?那么更多的构造函数呢? 在我的序列化对象中,我有一个属性Map,如果我更改(更新了一些属性,添加