如何使用JPA将各列映射到集合中

时间:2012-11-29 18:51:08

标签: java hibernate jpa

我有一个遗留数据库,其设计我无法改变。我正在尝试使用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由它们的数字引用。 我想将此布局映射到类似的模型:

@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会更好吗? 欢迎任何建议。谢谢!

1 个答案:

答案 0 :(得分:1)

我会在这些表之上创建视图来修复数据模型的问题。然后,您可以使用改进的模型从。

构建JPA实体