0

我有一个遗留数据库,我无法更改其设计。我正在尝试使用 JPA 2.0 (Hibernate) 实现一个 DAO 层来访问它。然而,我遇到了问题,因为布局只是......可怕。我可以切换到基于 Spring-JDBC 的解决方案,但我还不想放弃最初的想法。

这是我现在正在努力解决的一个问题:

表 A:

 Id    Number  SomeProperty
---  --------  ------------
 1        100             X
 2        200             Y
 3        999             Z
...

表 B:

Id     A1    A2    A3    A4    A5    A6
---  ----  ----  ----  ----  ----  ----
 1    100   200   
 2    200
 3    999     
 4    100   200   999
...

因此,每个 B 最多可以包含 6 个 A,这些 A 由它们的 Number 引用。我想将此布局映射到类似的模型:

@Entity
class A {
    String someProperty;
}

@Entity
Class B {
    List<A> listOfAs; // 
}

当我查询 B 时,我会使用示例数据,最终得到 4 个 B 实例:

  • 第一个包含 2 个 A 的列表(100 和 200)。
  • 第二个包含 1 个 A 的列表 (200)
  • 第 3 个包含 1 A (999) 等列表。

有什么好的方法吗?我绝对不想让 B 类包含 A1 a1、A2 a2、A3 a3 等等。

您认为在使用这样的遗留数据库时忘记 JPA 会更好吗?欢迎任何建议。谢谢!

4

1 回答 1

1

我会在这些表上创建视图来解决数据模型的问题。然后,您可以使用改进的模型来构建您的 JPA 实体。

于 2012-11-29T18:55:09.947 回答