0

在我的数据库中,我有大约 20 多个名为“a_emp_transactions”、“b_emp_transaction”等的表,其中所有表的表结构都相同。基本上这些表是根据员工的姓名划分的。

现在我想使用休眠对这些表进行 CURD 操作,但我不想为每个表创建 POJO。由于只有表名不同且结构相同,有没有办法使用单个 POJO 并使用注释根据当前员工姓名动态地将 POJO 映射到表?

4

2 回答 2

1

我认为您的数据库架构存在很大缺陷。为什么要使用 20 多个表,而您可能会使用 ONE 与相同的字段 + 一个“EmployeeName/ID”字段?

通过这种方式,您将能够将 POJO 映射到单个表,恕我直言,这将是一个更加一致的架构。

于 2012-05-09T07:12:44.177 回答
0

您可以使用 Hibernate Shards 来完成此操作。基本上,Hibernate Shards 允许您指定“分片”策略。它可以是跨不同数据库服务器的数据分布,也可以只是单独的表(看起来就是你的情况)。您当然会想要创建自己的策略,因为我不相信现有示例会完美地涵盖您的情况:-)

http://docs.jboss.org/hibernate/stable/shards/reference/en/html/shards-shardstrategy.html

顺便说一句:我不确定 Hibernate Shards 是否允许您更改映射实体的表名(也许有可能,我只是不知道)。在任何情况下:如果不可能,您可能可以创建不同的 Hibernate 命名策略,并使用不同的命名策略来使用每个分片。

于 2012-05-09T10:10:55.467 回答