JPAで単方向のOneToManyリレーションシップを定義する方法
2023-09-25 21:52:30
質問
JPAのエンティティマッピングで次のような問題があります。私は2つのエンティティを持っています。最初のものはルックアップであり、2番目はエンティティの翻訳を表すテキストです。今、私はルックアップをテキストにバインドする必要がありますが、私はテキストがルックアップへの参照を持っている必要はありません。これをより複雑にするために、テキストはこの関係でその主キーを使用しませんが、メタコードで定義された
TXTHEAD_CODE
カラムで定義されたメタコードを使用しています。
Lookup.java
@Entity
@Table(name = "DATREG")
public class Lookup implements PersistableEntity {
@Id
@Column(name = "DATREG_META_CODE")
private String metaCode;
@OneToMany
@JoinTable(name="TXT",
joinColumns=@JoinColumn(name="DATREG_META_CODE", referencedColumnName="TXTHEAD_CODE"),
inverseJoinColumns=@JoinColumn(name="DATREG_META_CODE"))
private List<Text> text;
Text.java
@Entity
@Table(name = "TXT")
public class Text {
@Id
@Column(name = "TXT_ID")
private Long id;
@Column(name = "TXTHEAD_CODE")
private String code;
というわけで、これを試してみたのですが(他のバリエーションもいくつか)、結果はダメでした。また、DBに結合テーブルを作成することができませんし、TextクラスにLookupをバインドしたくありません。だから、誰か他の方法があるかどうか教えてください。
どのように解決するのですか?
私のJPAの仕事のバイブルは
Java Persistence wikibookです。
. これには
セクションがあり、一方向性の
OneToMany
で行う方法を説明しています。
@JoinColumn
アノテーションを使用する方法を説明しています。あなたの場合は、以下のようにしたいのではないでしょうか。
@OneToMany
@JoinColumn(name="TXTHEAD_CODE")
private Set<Text> text;
を使ったのは
Set
ではなく
List
というように、データ自体に順序がないためです。
上記は、デフォルトの
referencedColumnName
を使用していますが、wikibook の例とは異なります。これがうまくいかない場合は、明示的なものを試してみてください。
@OneToMany
@JoinColumn(name="TXTHEAD_CODE", referencedColumnName="DATREG_META_CODE")
private Set<Text> text;
関連
-
mvn' は、内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されません。
-
NullPointerException - java.lang.
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
セミコロン期待値エラー解決
-
春ブート複数のデータソースの管理(atomikos)同じサーバーホスト上の複数のプロジェクトを開始する複数のJava - jarのエラーソリューション
-
テストが空であるかどうかを判断するためのオプションの処理
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
Eclipse問題 アクセス制限。タイプ 'SunJCE' が API でないことを解決し、/jdk ディレクトリにある /jre と jre の違いについて理解を深める。
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
セミコロン期待値エラー解決
-
Server Tomcat v9.0 Server at localhost の起動に失敗しました。
-
代入の左辺は変数でなければならない 解答
-
ecplise プロンプトが表示されます。"選択したものは起動できません。" "最近の起動はありません。"
-
Java の double データ型における 0.0 と -0.0 の問題
-
アクセス制限の解決方法: ---- in Java
-
linux ant Resolve error: main class not found or couldn't be loaded org.apache.tools.ant.launcher.
-
[解決済み】JPA JoinColumnとmappedByの比較