2016-04-30 6 views
0

Ich arbeite im Frühjahr mvc mit Winterschlaf. Ich bin neu in dieser Technologie. Ich muss den Namen der Hibernate-Entity-Klasse zur Laufzeit ändern?Wie ändert man den Hibernate-Tabellennamen (@Table (name = "tableName")) zur Laufzeit?

@Entity 
@Table(name="tableName") 
public class DynamicTable{ 

// column name with get set methods. 
.... 
} 

Hier muß ich zur Laufzeit der Tabellennamen ändern. Meine Spalte wird nur zu demselben Thema angezeigt. Ist es möglich, den Tabellennamen zu ändern? Wenn möglich, erkläre mich bitte. wenn nicht, sag mir die alternative Lösung für dieses Problem.

+0

könnte dies http://stackoverflow.com/questions/4378370/bind-hibernate-entity-to-table-at-runtime helfen Ihnen –

Antwort

0
package net.petrikainulainen.hibernate.util; 
import org.hibernate.cfg.ImprovedNamingStrategy; 


public class CustomNamingStrategy extends ImprovedNamingStrategy { 

    private static final String PLURAL_SUFFIX = "s"; 


    @Override 
    public String classToTableName(String className) { 
     String tableNameInSingularForm = super.classToTableName(className); 
     return transformToPluralForm(tableNameInSingularForm); 
    } 

    private String transformToPluralForm(String tableNameInSingularForm) { 
     StringBuilder pluralForm = new StringBuilder(); 

     pluralForm.append(tableNameInSingularForm); 
     pluralForm.append(PLURAL_SUFFIX); 

     return pluralForm.toString(); 
    } 
} 
+0

Danke für Ihre Antwort. Wie verwende ich diesen Code in der DAOImpl-Klasse? Könnten Sie mir bitte erklären? –

Verwandte Themen