如何在实体的架构属性内引用属性值?

时间:2019-02-21 16:22:34

标签: spring

有一个实体:

@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属性是动态的。

如何实现?

1 个答案:

答案 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();