2016-04-30 107 views
0

我正在春季mvc工作与休眠。我对这项技术很陌生。我需要在运行时更改hibernate实体类表名称?如何在运行时更改Hibernate表名(@Table(name =“tableName”))?

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

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

这里我需要在运行时更改表名。我的专栏只会一样。可以更改表名吗?如果可能请亲切地解释我?如果不告诉我这个问题的替代解决方案。

+0

这http://stackoverflow.com/questions/4378370/bind-hibernate-entity-to-table-at-runtime可以帮助你 –

回答

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

谢谢您的善意回复。如何在DAOImpl类中使用此代码。你能解释我吗? –