用于动态创建架构以支持adhoc JSON对象映射持久性的任何框架?

时间:2013-04-09 05:19:16

标签: hibernate jpa persistence dao

这是一个要求我试图确定 - 有这个传入的JSON数据代表一个对象图(想想嵌套对象,每个都有一个或多个属性),我需要在我的数据库中保留。现在的问题是我不知道JSON数据中会出现什么属性。我需要在数据进入时动态构建表以及列,并且可以只创建所有字符串类型列。但是,如果下一个请求具有给定对象类型或更少属性的更多属性,但只有不同的属性集,则应自动扩展先前创建的相应表以向其添加新列,然后允许传入的持久性JSON数据。对于嵌套对象,每个对象应该进入单独的表,如果另外创建某种连接或映射表以保持两者之间的映射,则可以。对象将具有静态“id”属性,该属性可能具有一些数字编号。这需要特别对待,因为没有“id”属性的对象应被视为“新”对象,因此应该执行行插入,并且应该在持久性期间为对象生成id。如果对象已经填充了“id”属性,则应将其视为更新操作。还有一个名为“toBeDeleted = true | false”的特殊属性可能会显示在JSON对象映射中,最终应该在id标识的对象上触发(级联)删除。

现在问题是:是否有任何OR映射框架,它允许动态扩展架构以保持传入属性?有没有人处理过这种需求,其中模式不是固定的,需要动态扩展以适应传入的数据 - 是否有任何框架支持这种类型的JSON持久性行为?

请记住,我尝试不创建具有键/值列的表来存储每个对象的属性和值,因为这通常会导致“高”表,这对于检索性能而言表现不佳。我真的希望看到每个属性都保存在它自己的列中,而不是键/值对类型表中的一行。

1 个答案:

答案 0 :(得分:0)

听起来你正试图制作一个不是为了存储而设计的ORM存储数据,这是一个更平坦的数据库或文档存储。我会重新考虑你的设计,因为它听起来像Mongo会更合适,因为它会做你想要的开箱即用。