0

という名前のエンティティを作成しましたImage。データベースに保存する画像メタデータなどを保持します。現在、私はone-to-manyと の間に関係がQuestionありImageます。そのため、問題のエンティティの画像のリストに宣言@OneToManyして注釈を付けました。これは、私の場合に名前が@JoinColumn付けられた画像テーブルに外部キーがあることを意味します。question_id

このエンティティを他の関係でも使用したいと考えています。User画像などを入れることができます。ただし、これはuser_id、画像テーブルにも列が必要であることを意味します。これが成長するにつれて、これは悪いアプローチのように思えます。

これどうやってするの?継承を使用して などQuestionImageのサブクラスを作成する必要がありUserImageますか?

または、他のより良い(そしてより簡単な方法)はありますか?

4

1 に答える 1

1

JoinColumn を定義しないでください。1 対多の一方向アソシエーションのデフォルトは、JoinTable を使用することです (まさにこの理由から)。

以外を指定しない場合は@OneToMany(...)、JoinTable が使用されます。@JoinTableもちろん、注釈を使用して名前と列名をカスタマイズできます。

于 2013-08-31T14:49:09.497 に答える