PhysicalNamingStrategyの実装クラス
PhysicalNamingStrategyのデフォルト実装のPhysicalNamingStrategyStandardImplを継承すると必要なメソッドだけ実装すればいいのでよい。この例では、テブル名の先頭に「hoge_」を付加している。
import org.hibernate.boot.model.naming.Identifier; import org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl; import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment; public class HogeNameStrategy extends PhysicalNamingStrategyStandardImpl { @Override public Identifier toPhysicalTableName(Identifier name, JdbcEnvironment context) { return Identifier.toIdentifier("hoge_" + name.getText(), name.isQuoted()); } }
persistence.xmlへPhysicalNamingStrategy実装クラスを設定
hibernate.physical_naming_strategyというプロパティに、作成したクラスのFQCNを設定する。<properties> <property name="hibernate.physical_naming_strategy" value="sample.HogeNameStrategy" /> </properties>
結果
一律プレフィックスが追加されているのがわかるHibernate: create table HOGE_Item (id bigint not null, primary key (id)) Hibernate: create table "HOGE_user" (id bigint not null, name varchar(255), primary key (id))