在我们的项目中,我们有一个限制,即无法更改已经存在的表结构。这些表本质上是高度非规范化的。
我们已经为应用程序提出了很好的 POJO。我们有从现有表中生成的实体 bean。现在我们必须将 POJO 映射到实体,以便我们可以持久化。
最终,我们将一个好的 POJO 与一个坏的表结合起来。对这种方法的选项/替代方案/建议有什么想法吗?
在我们的项目中,我们有一个限制,即无法更改已经存在的表结构。这些表本质上是高度非规范化的。
我们已经为应用程序提出了很好的 POJO。我们有从现有表中生成的实体 bean。现在我们必须将 POJO 映射到实体,以便我们可以持久化。
最终,我们将一个好的 POJO 与一个坏的表结合起来。对这种方法的选项/替代方案/建议有什么想法吗?
Hibernate/JPA(2) 具有一组丰富的功能来操作映射(以便您的对象可以与表不同),因此可以将许多(不是全部)旧表映射到普通对象。-- 你应该先看看这个,任何使用你的 pojo/table-“解决方案”,只有当这个映射不够强大时。
如果您有一个只读应用程序,您可以考虑使用视图使您的表/视图更像您的对象。这可能会减少奇怪映射的数量。
我不知道您的映射、应用程序的大小或用例,但您是否考虑过不使用 Hibernate?我问这个,因为我可以想象(我怎么说:我不了解你的应用程序),在这样的架构中,没有使用 Hibernate 功能,因此 Hibernate 只会增加不需要的复杂性。
如果您使用的是 Hibernate,您应该能够仅使用 XML 文件将 POJO 映射到表结构,而无需创建新的 Java bean。如果突然之间您可以更改表结构并节省中间 bean,这将允许您轻松更改映射。这是你能做的最好的。