我有一个实体类,如下所示
@Entity
@Table(name = "USER")
public class Users {
...
}在生产部署期间,我想要从这个用户表中读取。但是在阶段环境部署期间,我想要从USER_STAGE表中读取。
@Entity
@Table(name = if (env=='prod') ? "USER" : "USER_STAGE")
public class Users {
...
}我如何在没有任何服务级别逻辑的情况下实现这一点?
发布于 2021-02-03 17:19:17
考虑实现您自己的命名策略来更改表名。
然后将它们暴露为spring beans,并与spring boot集成。
由于命名策略本身可以是一个bean,因此它可以获取前缀的配置参数,该参数可以根据激活的配置文件、环境等进行更改。
我找到了this SO thread,它谈到了“纯hibernate”的命名策略。它还提供了一个修改表名的示例。
此外,请考虑阅读this tutorial -它讨论了如何将自定义命名策略与spring boot集成
https://stackoverflow.com/questions/66024192
复制相似问题