Hibernate 拦截器的使用--动态表名
前言 最近公司的核心业务的数据要进行分库分表,我们代码中ORM采用的是jpa的方式,但是目前面临的一个问题就是,在原先的实体和表的映射关系是固定的情况下,如何用一种优雅的方式在系统运行的过程中,根据实际的业务需要动态的将实体的表名进行更改。 内容摘要 jpa有多种实现的方式,但是最常见的还是采用Hibernate的方式实现,所以为了实现上述的业务,就必须得用到Hibernate的相关特性,在这里,我们使用Hibernate的拦截器Interceptor,通过Interceptor,将即将执行的sql语句中的表名进行替换。 方式一:在代码中进行替换 1.创建拦截器 public class AutoTableName extends EmptyInterceptor { private String targetName;// 目标表名 private String tableName;// 操作表名 public AutoTableName() {} public AutoTableName(String targetName,String tableName) { this.targ...
