日期:2014-05-16  浏览次数:20400 次

实习技术笔记---Hibernate应用 (一个Entity对应多个相同结构的数据库表)

大家有没有遇到过这样的情况,一个Entity对应多个相同结构的数据库表。

打个比方,

我们需要根据时间划分到同一个数据库结构相同的多个表中(情况1)

我们需要把数据分散在不同的数据库结构相同的多个表中(情况2)

而情况二又分为以下两种情况:

以一个与该Entity的业务逻辑无关的项作为分拆条件(情况2.1)

以一个与该Entity的业务逻辑有关的项作为分拆条件(情况2.2)

而2.2就是我要实现的情况。我们来单独一个一个讲解实现方法:

?

  • 1的实现方法:

这个是老大先让我看的技术Hibernate Shards,上帝啊,这个manual也是纯英文的,差点没把我看死。

最终发现她的实现方法就是通过不同的数据源配置以及strategy的自己实现来完成对于数据的分布式存储过程。

http://www.hibernate.org/subprojects/shards.html

有兴趣的同学可以自己阅读以下他的手册~可惜不能满足我的需求,于是就没有实现。

简单的介绍如下:

1 <!-- Contents of shard0.hibernate.cfg.xml -->
2 <hibernate-configuration>
3 <session-factory name="HibernateSessionFactory0"> <!-- note the different name -->
4 <property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
5 <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
6 <property name="connection.url">jdbc:mysql://dbhost0:3306/mydb</property>
7 <property name="connection.username">my_user</property>
8 <property name="connection.password">my_password