【问题标题】:Hibernate how to make schema name configurable for entity classHibernate如何使实体类的模式名称可配置
【发布时间】:2019-02-01 12:49:24
【问题描述】:

我一直在努力使实体类中的架构名称可配置。下面给出了我为我的 springboot 应用程序尝试的代码。

    @Entity
    @Table(name="Employee", schema=Employee.schemaName)
             public class Employee implements Serializable {
        @Autowired
        private static Environment env;
        public static String schema =env.getProperty("databaseSchema");
        public static final String schemaName = schema; 
        ..........
        }

这里我试图使用 Environment 对象从我的配置文件中获取模式名称,并将值设置为 @Table 注释中的模式。但是我在@Table 注释中的模式名称处收到一个错误,即“注释属性 Table.schema 的值必须是一个常量表达式”。如果我从变量 schema 和 schemaName 中删除静态 final,那么在 @Table 中也会出现“无法对非静态字段 Employee.schemaName 进行静态引用”的错误。有什么方法可以使架构名称可配置?提前致谢。

【问题讨论】:

  • 注解需要常量值才能声明其参数
  • 喜欢在orm.xml 中定义架构名称吗?因此,您可以使用您想要使用的任何 orm.xml 文件启动 EMF

标签: java database hibernate spring-boot jpa


【解决方案1】:

也许是 Hibernate 多租户

查看文档here

多租户允许在单个托管服务器上为多个租户提供单个应用程序实例。这通常通过分离数据库、分离模式或共享模式来执行。

【讨论】:

    猜你喜欢
    • 2019-01-25
    • 1970-01-01
    • 1970-01-01
    • 2018-11-10
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 2013-09-02
    相关资源
    最近更新 更多