我的情况如下。我有一个包含三个输出文本和相应输入文本的 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/