2012-04-17 9 views
2

私は次のマッピングを持っている:@JoinTableマッピングを使用する場合のFK名の指定方法は?

//... 
@Table(name="A") 
public class A{ 
    @ManyToMany(fetch = FetchType.LAZY) 
    @JoinTable(name = "A_B", joinColumns = {@JoinColumn(name = "A_ID")}, inverseJoinColumns = {@JoinColumn(name = "B_ID")}) 
    public Set<B> getBs() { 
      return this.meals; 
     } 
    //... 
} 

//... 
@Table(name="B") 
public class B{ 
    private int id; 
    private String description; 
    //... 
} 

はどのようにテーブル「A_B」における外部キーの名前を指定することができますか? (FK_A_IDとFK_B_ID)事前に

おかげで、 Neuquino

答えて

2

あなたが参加するテーブルに外部キー制約の名前を指定する@ForeignKeyを使用することができます。例えば

@ForeignKey(name="FK_A_ID" , inverseName="FK_B_ID") 
@JoinTable(name = "A_B", joinColumns = {@JoinColumn(name = "A_ID")}, inverseJoinColumns = {@JoinColumn(name = "B_ID")}) 
public Set<B> getBs() { 
     return this.meals; 
} 

は次に表A_Bは、以下の構造を有する:

  • の表A【選択名の主キーに対する外部キー制約を有するA_ID呼ばカラムこの外部キーはFK_A_ID

  • という列ですこの外部キーの表B【選択名の主キーに対する外部キー制約があり私は、制約の名前、列のない名前を変更したいFK_B_ID

+0

です。単純な属性の場合は@ForeignKeyを使用しますが、JoinTableの場合はどのように行うのかわかりません。 – Neuquino

+0

@Neuquino誤解質問は前に、ちょうど –

+0

を更新しますか? – Kakawait

関連する問題