我有一个遗留数据库,我无法更改其设计。我正在尝试使用 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 会更好吗?欢迎任何建议。谢谢!