2016-07-12 17 views
0

Ich habe eine Tabellendefinition in der Klasse Message mit Hibernate Annotation @Table(name="message"). SoJava Hibernate @Table Name als Parameter

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

Ich bin in der Lage Message Objekte zu erstellen und speichern sie in Datenbanktabelle message von Java-Code.

Was ich tun möchte, ist Message Objekt zu sagen, welcher Tabellenname verwendet werden sollte, z. Ich möchte es mit Parametern wie Message(String tableName) erstellen. Dann würde die Tabellenname Annotation von diesem Parameter wie

verwendet werden. Alles andere sollte gleich sein.

Wie geht das?

Antwort

0

Sie können die Tabellennamen mithilfe von NamingStrategies ändern.

public class MyNamingStrategy extends DefaultNamingStrategy { 

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

Dann verwenden Sie wie folgt.

SessionFactory sessionFactory; 
Configuration config = new AnnotationConfiguration() 
.configure("hibernate.cfg.xml") 
.setNamingStrategy(new MyNamingStrategy()); 
sessionFactory = config.buildSessionFactory(); 
session = sessionFactory.openSession(); 
Verwandte Themen