[解決済み] JPA 複数の埋め込みフィールド
質問
JPAエンティティクラスに、2つの埋め込み型(
@Embedded
) フィールドを含むことはできますか? 例としては、以下のようになります。
@Entity
public class Person {
@Embedded
public Address home;
@Embedded
public Address work;
}
public class Address {
public String street;
...
}
この場合
Person
には二つの
Address
インスタンスを含むことができます。私はHibernateの実装でJPAを使用しています。Hibernate Toolsを使用してスキーマを生成すると、スキーマに埋め込まれた1つの
Address
. 私が望むのは、2つの埋め込み
Address
インスタンスで、それぞれカラム名が区別されているか、何らかの接頭辞 (home や work など) がつけられているものです。私が知っているのは
@AttributeOverrides
も知っていますが、これは各属性を個別にオーバーライドする必要があります。これは、もし埋め込みオブジェクト (
Address
) が大きくなると、各カラムを個別にオーバーライドする必要があるため、面倒になります。
どのように解決するのか?
同じエンティティに同じ埋め込みオブジェクト型を2回持ちたい場合、列名のデフォルトは機能しません。少なくとも1つの列は明示的に指定する必要があります。HibernateはEJB3の仕様を超えて、NamingStrategy.DefaultComponentSafeNewを使用してデフォルトのメカニズムを拡張することができます。DefaultComponentSafeNamingStrategyは、デフォルトのEJB3NamingStrategyに対する小さな改良で、埋め込みオブジェクトが同じエンティティで2回使用されてもデフォルトにできるようにします。
Hibernate Annotations Docより。 http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#d0e714
関連
-
実行中にEclipseがポップアップする A Java Exception has occurred
-
スレッド "main "での例外 java.util.NoSuchElementException in Java 問題解決済み
-
[解決済み] Spring Data JPAにおけるCrudRepositoryとJpaRepositoryのインターフェースの違いは何ですか?
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
CertificateException: XXXに一致するサブジェクトの代替DNS名が見つかりません 解決策
-
Java Runtime Environmentを継続するためのメモリが不足しています。
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] なぜJavaにはtransientフィールドがあるのですか?
-
[解決済み] JPA EntityManager。なぜmerge()ではなくpersist()を使うのか?
-
[解決済み】JPA JoinColumnとmappedByの比較
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
javaの非静的メソッドを静的に参照することができない
-
Javaクラスが "Error occurred during initialization of boot layer "というエラーで実行される。
-
Git Pull Failed マージされていないファイルがあるため、Pull できません。
-
java マイクロソフト払い戻し予期せぬサーバーからのファイルの終了
-
List list = new ArrayList(); Error: ArrayList は型に解決できません。
-
API の戻り値を処理するために ResponseEntity を使用する
-
Java基礎編 - オブジェクト指向
-
Java JDKのダイナミックプロキシ(AOP)の使用と実装の原理分析
-
linux ant Resolve error: main class not found or couldn't be loaded org.apache.tools.ant.launcher.
-
swagger2 モデルが表示されない モデルが見つからない @ApiModel アノテーションが表示されない問題