java - 如何将 json 对象存储到 hibernate 数据库字段

标签 java json

我的情况如下。我有一个包含三个输出文本和相应输入文本的 JSF 表单:

输出文本 1 - 输入文本 1

输出文本2 - 输入文本2

输出文本3 - 输入文本3

目前我使用 backbean 方法“Save”将它们存储到数据库中(hibernate 对象假设 table1 具有主键 table1.id)到字段 table1.field1、table1.field2、table1.field3 中。

所以表中的每条记录都有插入到输入文本中的值。

我的问题是如何以如下形式在数据库中存储表单数据:

{"outputtext1:inputtext1","outputtext2:inputtext2"."outputtext3:inputtext3"}

然后再次获取它们,解析并重建表单。我正在考虑将表单数据作为 JSON 对象来操作...但是我对 Java+JSON 都是新手,所以一些指南对我来说真的很有用!

这是一个指示性示例,表单将由动态动态创建。

最佳答案

为什么要序列化/反序列化 JSON 以将其直接发送到数据库?反序列化有其自身的问题,多次反序列化可能(不会)成为问题的根源。

您应该将字段保存为给定实体的属性,然后借助 Gson 等库的帮助, 从实体生成 JSON。


更新

由于您的表单是动态的,您可以使用一些适应性强的实体结构来保存您的数据。

您的实体可以有一个 Map<String,String>属性或集合,例如 FieldRecord包含键值对的实体。

我之所以这样建议,是因为数据库中的 JSON 可能会导致复杂的问题,尤其是当您稍后必须查询该数据时。您必须处理 JSON 才能报告或查找哪些记录具有特定字段。这只是一个示例,事情可能会变得更复杂。

关于java - 如何将 json 对象存储到 hibernate 数据库字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15836403/

相关文章:

python - 使用 python 将文件读取为 json 的替代方法

ios - 如何将 json 响应存储到变量中?

json - 防止 Marshal 在结构的字符串字段上转义引号

java - 内部存储项目

java - 不能同时使用 Scanner.nextInt() 和 Scanner.nextLine()

java - DynamoDB (Java) 中基于数字限制和偏移的分页

java - 属性(property)选址环境设置

java - Eclipse 无法启动 chrome 驱动程序

php - 使用jquery解析php发送的json

c# - 使用 C# 和 JSON 在 ASP.Net 中填充下拉列表和文本框