有一个实体:
@Entity
@Table(name = "ITMMASTER" , schema = "TOMCTB")
public class Article {
@Id
@Column(name = "ITMREF_0")
private String code_article;
@Column(name = "ACCCOD_0")
private String acccod;
public String getCode_article() {
return code_article;
}
public void setCode_article(String code) {
this.code_article = code;
}
public String getAcccod() {
return acccod;
}
public void setAcccod(String acccod) {
this.acccod = acccod;
}
}
我想根据schema
文件属性值(例如:properties
)使env.schema = TOMEXPL
属性是动态的。
如何实现?
答案 0 :(得分:0)
我没有尝试过,但是我想应该可以。
public class DynamicNamingStrategy extends DefaultNamingStrategy {
@Value("db.table.name")
private String name;
@Override
public String tableName(String tableName) {
return name;
}
...
}
SessionFactory sessionFactory;
Configuration config = new AnnotationConfiguration()
.configure("hibernate.cfg.xml")
.setNamingStrategy( new DynamicNamingStrategy() );
sessionFactory = config.buildSessionFactory();
session = sessionFactory.openSession();