データベースオブジェクトとスキーマ要素の命名規則は、org.hibernate.cfg.NamingStrategyインタフェースの使用された実装によって制御されます。
org.hibernate.cfg.DefaultComponentSafeNamingStrategy org.hibernate.cfg.DefaultNamingStrategy org.hibernate.cfg.EJB3NamingStrategy org.hibernate.cfg.ImprovedNamingStrategy
:3.6休止は、このインタフェースの4つの実装を有します私はカスタムネーミング戦略を拡張し、そのclassToTableName()メソッドをオーバーライドすることに決めました。私の実装のソースコードは以下で与えられる:
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();
}
}
次のステップは、私のカスタム命名戦略を使用するようにHibernateを構成することです。
Hibernateリファレンスドキュメントの「ネーミング戦略の実装」で説明しているように、ConfigurationクラスのsetNamingStrategy()メソッドを呼び出すことでカスタムネーミング戦略への参照を設定できます。
HibernateリファレンスマニュアルのXML設定セクションの説明に従って、Hibernate XML設定ファイルのhibernate.ejb.naming_strategyプロパティの値をCustomNamingStrategyに設定できます。
あなたはJPAを使用している場合は、私はあなたの答えの第二部では、より興味を持っていpersistence.xmlの
にCustomNamingStrategyにhibernate.ejb.naming_strategyプロパティの値を設定することにより、使用される命名戦略を設定することができます。 この行をhibernate.cfg.xmlファイルに追加することを提案しますか? <プロパティ名= "hibernate.ejb.naming_strategy"> com.kestuboof.util.LowercaseNamingStrategy – guillaume06