如何基于具有Hibernate的属性将一个jpa实体映射到多个表

时间:2011-03-07 09:21:30

标签: hibernate jpa jpa-2.0

我要将来自外部产品的消息存储在数据库中。所有消息都相同并具有CATEGORY属性。由于大多数将在db上完成的查询过滤了我的DB Architect建议的类别,因此每个类别将一个表拆分为一个表。

通常我每桌需要一个班级。不幸的是有超过100个类别...

是否可以使用JPA / Hibernate实现我的场景?

1 个答案:

答案 0 :(得分:1)

除了生成100个子类之外,我认为没有一种简单的方法可以做到这一点。如果每个类别的消息都具有相同的属性,则子类应该非常简单,并且可以由小程序自动生成。但是,只有当类别集是静态的而不是动态的时,这才有效。

但是,我首先会挑战建筑师的设计。通过这样做,你将失去

的能力
  • 有消息的外键(因为它们将分布在100个表中)
  • 对邮件(即使是其ID)具有唯一约束
  • 对不同的邮件类别进行了明智的查询

我不认为你会获得太多收益,因为如果消息表上的索引包含类别列,则查询应该与类别的消息在专用表中一样快。