如何在运行时更改Hibernate表名(@Table(name =“tableName”))?

时间:2016-04-30 12:44:43

标签: java spring hibernate

我正在使用hibernate在spring mvc中工作。我是这项技术的新手。我需要在运行时更改hibernate实体类表名吗?

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

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

这里我需要在运行时更改表名。我的专栏只是一样的。是否可以更改表名?如果可能的话请好好解释一下?如果没有告诉我这个问题的替代解决方案。

1 个答案:

答案 0 :(得分: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();
    }
}