カスタム命名戦略 (テーブル名のみ) を実装する方法を調査しているときに、解決できない矛盾に遭遇しました。(JBoss 6.1.0.Final で hibernate-core 3.6.6.Final を使用しています。PostgreSQL 9.1.9 で)
には 3 つの組み込み実装があるようですNamingStrategy
。
DefaultNamingStrategy
EJB3NamingStrategy
ImprovedNamingStrategy
デフォルトは in に設定されているようEJB3NamingStrategy
ですorg.hibernate.cfg.Configuration
。
ただし、テーブル名は、上記のいずれにも一致しない戦略に従って設定されているようです。
例:
クラス名:package.ClassName
結果のテーブル名:classname
StringHelper.unqualify( className )
戦略 1 と 2 は単にすべてのパッケージ名とドットを削除するだけの呼び出しなので、結果はClassName
.
戦略 3 では、すべてのパッケージ名とドットを削除し、キャメルケース文字の前にアンダースコアを置き、最後に小文字に変換しclass_name
ます。
(hibernate 4.1.0.Final のソース コードは、これらのクラスで変更されていないようです。)
誰かがこれを明確にするのを手伝ってくれますか?