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

tha*_*ili 5 java json

我的情况如下.我有一个带有三个outputtexts的JSF表单,相应的inputtexts让我们说:

outputtext1 - inputtext1

outputtext2 - inputtext2

outputtext3 - inputtext3

目前我使用backbean方法'Save'将它们存储到数据库中(hibernate对象让table1与主键table1.id)存入table1.field1,table1.field2,table1.field3字段.

因此表中的每条记录都在inputtexts中插入了值.

我的问题是如何将表单数据存储在数据库中,格式如下:

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

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

这是一个指示性示例,表单将通过动态创建并在运行中创建.

Fri*_*itz 4

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

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


更新

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

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

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