在我的数据库中,我有大约20多个名为'a_emp_transactions','b_emp_transaction'的表,等等,所有表的表结构相同。基本上这些表格是根据员工的姓名划分的。
现在我想使用hibernate对这些表进行CURD操作,但我不想为每个表创建POJO。因为,只有表的名称不同并且具有相同的结构,有没有办法使用单个POJO并使用注释基于当前员工名称动态地将POJO映射到表?
答案 0 :(得分:1)
我认为您的数据库架构存在一个很大的缺陷。 为什么在使用具有相同字段的ONE +“EmployeeName / ID”字段时使用20多个表?
通过这种方式,您可以将POJO映射到单个表,而恕我直言,这将是一个更加一致的架构。
答案 1 :(得分:0)
您可以使用Hibernate Shards来实现这一目标。基本上,Hibernate Shards允许您指定“分片”策略。它可以是跨不同数据库服务器的数据分发,也可以只是单独的表(因为它似乎是你的情况)。您当然希望制定自己的策略,因为我不相信现有的例子会完全覆盖您的案例:-)
http://docs.jboss.org/hibernate/stable/shards/reference/en/html/shards-shardstrategy.html
顺便说一下:我不确定Hibernate Shards是否允许你更改映射实体的表名(也许它是可能的,我只是不知道)。在任何情况下:如果不可能,您可以创建不同的Hibernate命名策略,并使用不同的命名策略使用每个分片。