spring boot jpa 实现拦截器

我们项目重构加上了很多数据权限的东西,项目中使用了mybatis 和 jpa。经手的人多了就是这样。 mybatis 我们使用的是拦截器给sql动态拼接,现在jpa也需要这样做。

以下是jpa 拦截器的配置。

第一步: 实现 hibernate接口。重写方法

public class JpaInterceptor implements  StatementInspector {


    @Override
    public String inspect(String sql) {
        System.out.println("进入拦截器" + sql);
        sql+= " and 1=1";
        return sql;
    }
}

第二步: 在yml中配置

spring:
  jpa:
    properties:
      hibernate:
        session_factory:
          statement_inspector: com.bdyh.system.config.jpa.JpaInterceptor

结果

2019-06-19 17:19:08,615 - HHH000397: Using ASTQueryTranslatorFactory
进入拦截器select permission0_.id as id1_8_, permission0_.create_by as create_b2_8_, permission0_.create_department_id as create_d3_8_, permission0_.create_department_ids as create_d4_8_, permission0_.create_time as create_t5_8_, permission0_.del_flag as del_flag6_8_, permission0_.tenant_id as tenant_i7_8_, permission0_.update_by as update_b8_8_, permission0_.update_department_id as update_d9_8_, permission0_.update_department_ids as update_10_8_, permission0_.update_time as update_11_8_, permission0_.button_type as button_12_8_, permission0_.component as compone13_8_, permission0_.description as descrip14_8_, permission0_.icon as icon15_8_, permission0_.level as level16_8_, permission0_.name as name17_8_, permission0_.parent_id as parent_18_8_, permission0_.path as path19_8_, permission0_.sort_order as sort_or20_8_, permission0_.status as status21_8_, permission0_.title as title22_8_, permission0_.type as type23_8_, permission0_.url as url24_8_ from t_permission permission0_ where permission0_.type=? and permission0_.status=? and permission0_.tenant_id=? order by permission0_.sort_order asc
Hibernate: select permission0_.id as id1_8_, permission0_.create_by as create_b2_8_, permission0_.create_department_id as create_d3_8_, permission0_.create_department_ids as create_d4_8_, permission0_.create_time as create_t5_8_, permission0_.del_flag as del_flag6_8_, permission0_.tenant_id as tenant_i7_8_, permission0_.update_by as update_b8_8_, permission0_.update_department_id as update_d9_8_, permission0_.update_department_ids as update_10_8_, permission0_.update_time as update_11_8_, permission0_.button_type as button_12_8_, permission0_.component as compone13_8_, permission0_.description as descrip14_8_, permission0_.icon as icon15_8_, permission0_.level as level16_8_, permission0_.name as name17_8_, permission0_.parent_id as parent_18_8_, permission0_.path as path19_8_, permission0_.sort_order as sort_or20_8_, permission0_.status as status21_8_, permission0_.title as title22_8_, permission0_.type as type23_8_, permission0_.url as url24_8_ from t_permission permission0_ where permission0_.type=? and permission0_.status=? and permission0_.tenant_id=? order by permission0_.sort_order asc and 1=1

转载自https://www.jianshu.com/p/e89b48a4cb7a

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值