Hibernate如何使架构名称可为实体类配置

时间:2018-08-27 01:31:03

标签: java database hibernate spring-boot jpa

我一直想使Entity类中的架构名称可配置。下面给出了我为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”。有什么方法可以使架构名称可配置?预先感谢。

1 个答案:

答案 0 :(得分:1)

也许Hibernate多租户

请参阅文档here

多租户允许在单个托管服务器上为多个租户提供单个应用程序实例。通常,这可以通过分离数据库,分离架构或共享架构来完成。