我一直想使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”。有什么方法可以使架构名称可配置?预先感谢。
答案 0 :(得分:1)