springboot 如何预先执行SQL中的数据(详情见描述)?

作者站长头像
站长
· 阅读数 9

在用mybatis封装好的基础查询方法,比如selectByCondition,后面拼上需要查询的条件就可以查询出结果,缺点是没办法连表(join)查询

比如:在主表中有租户ID字段,但是需要连表才能查询出租户的名称字段但是这个条件查询用一行代码比如selectByCondition就搞定了,但是前端必须要中文含义,之前的做法就是自己写SQL语句去关联租户表拿到租户名称,能不能在项目启动的时候就去查询租户ID和租户映射的信息(因为租户信息表基本是不变的,可以理解为常量,但是还得查数据库的),如果可以的话,怎么写代码让项目启动时就去执行SQL,然后可以用静态方法的形式去获取租户信息或者 有更好的方法能获取到租户的信息?补充:不能引入租户表的repository,也就是说不能用selectByCondition方式查询出租户的信息租户表: tenantID tenantName

回复
1个回答
avatar
test
2024-07-13

如果租户表基本不变,可以在程序一开始就把租户信息都缓存到一个Map里,集成了Spring的话,有很多方式可以在Spring容器启动之后执行某个方法,比如使用注解@PostConstruct、实现CommandLineRunner接口、ApplicationRunner接口

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容