【发布时间】: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