2016-07-12 3 views
0

私はMessageというクラスのテーブル定義を持っており、休止状態の注釈は@Table(name="message")です。Java Hibernate @テーブル名をパラメータとして

@Entity 
@Table(name="message") 
public class Message implements Serializable 

だから私はMessageオブジェクトを作成し、Javaコードからデータベース・テーブルmessageにそれらを格納することができますよ。

Messageオブジェクトにどのテーブル名を使用するかを伝えたいとします。私はMessage(String tableName)のようなパラメータでそれを作成したいと思います。次に、テーブル名の注釈がそのパラメータから使用されます。

@Entity 
@Table(name=tableName) 
public class Message implements Serializable 

他はすべて同じである必要があります。

どうすればよいですか?

答えて

0

NamingStrategiesを使用してテーブル名を変更できます。

public class MyNamingStrategy extends DefaultNamingStrategy { 

    @Override 
    public String tableName(String tableName) { 
    return tableName; 
} 
} 

次に、次のように使用します。

SessionFactory sessionFactory; 
Configuration config = new AnnotationConfiguration() 
.configure("hibernate.cfg.xml") 
.setNamingStrategy(new MyNamingStrategy()); 
sessionFactory = config.buildSessionFactory(); 
session = sessionFactory.openSession(); 
関連する問題