应用场景:同一数据库中,有一些结构完全相同的表,只是表名不一样,比如日志表。
分表可能是数据量的考虑,也可能是数据隔离的考虑,比如多租户应用中。
由于项目使用了Spring Data-JPA(JPA实现是Hibernate),而JPA不仅没有提供动态表名映射,而且大部分JPA实现会pre-compile some queries,所以在JPA技术下做分表非常困难。
因为分表、分库这类需求与sql语句联系紧密,所以对应的办法是选择jdbc、mybatis、jdbcTemplate这类使用原生sql的技术,Hibernate的方法比较麻烦。