使用hibernate从框架中持久化Object

时间:2010-12-16 09:29:20

标签: java hibernate frameworks

我正在考虑从我使用的库/工具包中保留某个对象。有以下问题:

该对象有一个id字段,它是一个字符串。如何在其中存储生成的数值?

库的对象层次结构相当复杂,相应的对象位于底部。它还包含应该映射为OneToMany的数组。

如何为此对象创建映射文件?浏览所有父类以确定必填字段? (源代码可用)。或者是否可以选择坚持所有这些?

1 个答案:

答案 0 :(得分:0)

我想说,首先,花一点时间分析您的域模型。

您是否需要对要保存的这些对象执行查询(除了读取和保存)?这些查询是否会受到这些对象具有的依赖性的影响?你真的有兴趣坚持与你的对象有关的所有对象图吗?

我的第一印象是决定坚持从第三方库/框架中出来的一个对象不是一个好主意,因为:

  • 您无法控制对象依赖关系/关系以及对象的生命周期。它是由第三方创建的,对吧?
  • 你必须服从那个特定的结构,这个结构很可能没有针对持久性目的进行优化/设计。为不是由你维护的结构创建Hibernate映射是单调乏味的。
  • 您将最终保留更多信息,然后
  • 如果您升级了所使用的第三方库的版本,则Hibernate映射可能不再匹配。
  • 有许多设计原则

我认为你会更乐意设计自己的结构并坚持下去。然后有一个Adapter将您的结构转换为框架所期望的对象。这样,您的代码将被框架执行或将要对这些对象执行的所有操作隔离。您的持久性代码保持不变,只有适配器可能会发生变化。

我希望这是有道理的。如果您已经考虑过所有这些,并且仍然需要坚持这种结构,请告诉我! :)

更新的 我并不是指创建一个实现与第三方对象相同的接口的结构,我指的是创建一个完全重新构建的结构,适合在关系数据库中持久化。然后适配器将根据您的对象创建第三方结构..