【问题标题】:JPA, complex object graphs and SerialisationJPA、复杂对象图和序列化
【发布时间】:2013-03-27 09:31:07
【问题描述】:

我有一个“项目”实体/类,其中包括许多“复杂”字段,例如,作为具有多种可能实现的接口引用。举个例子:一个接口属性,T 几乎可以是任何类型(与我实现的类型一样多)。

我使用 JPA。对于这些字段,我别无选择,只能将它们实际序列化以存储它们。虽然我不需要在查询中使用这些对象,但这显然会导致一些问题,例如维护/更新开始。

我有两个问题:

1) 是否有一个“技巧”可以让我的数据库保持最新,以防我的序列化类发生“重大”更改(大部分时间序列化更改都得到了很好的处理)?

2) 转向 JDO 有帮助吗?我对 JDO 的经验很少,但我的理解是,使用 JDO,在表中序列化对象永远不会发生(但是如何处理更改?)。 为了支持 2) 我还必须补充一点,我拥有的对象图可能非常复杂,例如可能涉及 10 个表,只是为了检索一个完整的“项目”。

【问题讨论】:

    标签: java database jpa jdo


    【解决方案1】:

    JDO 显然支持接口字段的持久性(但是 DataNucleus JPA 也允许它们的持久性,但作为供应商扩展)。让某个接口字段成为任何可能的类型之一会给 RDBMS 带来问题,而不是 JDO 本身。底层数据存储更多是您的问题(无法充分镜像您的模型),许多其他数据存储之一可以帮助您解决这个问题。例如,DataNucleus JDO/JPA 支持 GAE/Datastore、Neo4j、MongoDB、HBase、ODF、Excel 等,并简单地将相关对象的“id”保存在拥有对象表示中的“列”(或等效项)中......所以这样的重大变化会比你现在拥有的要少得多

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多