問題は次のとおりです。私は複数のフィールドを持つEmbeddable
クラス(例えば、Address
)のクラスを持っています。別のクラス(たとえば、Employee
)は、クラスAddress
(f.e. homeAddress
、workAddress
など)のいくつかのインスタンスフィールドを持っています。確かに私はAddress
フィールドの異なるカラム名、例えばworkAddressStreet
とhomeAddressStreet
などを別のインスタンスに持つ必要があります。クラスごとのHibernate NamingStrategy
各フィールドにAttributeOverride
注釈を使用できますが、これは非常に面倒です。この問題を解決するために使用できるインタフェースNamingStrategyがあります。しかし、すべてのドキュメントとサンプルにつきましては、セッションレベルでのみグローバルにしか使用できないことがわかりました。その間、私が取り組んでいるシステムにはそのような不自然さがなく、そのような導入はおそらく既存のスキーマの中で大きく変わるだろう。特定のクラスにのみ適用する方法はありませんか?
いいアイデアですが、私はまだいくつかの(実際には3つの)異なるアドレスを持っているので、あるテーブルの中で別のカラム名にマップする必要があります。 しかしあなたの提案は、埋め込み不可能な 'Address'を実行して別のテーブルに保持することを考えさせてくれます。うーん、これは行く道だ... – yozh