私は簡単な質問があります。 @ ManyToOneアノテーションから生じる外部キー関係に名前を付けるにはどうすればよいですか?JPA:DBの外部キーに名前を付けますか?
答えて
外部キーで使用される列の名前を指定する場合は、@JoinColumn
注釈と@ManyToOne
注釈を使用して、外部キーを作成するために使用される列の名前を指定できます。 @JoinColumn
注釈のname
属性の値は、JPAプロバイダによって使用され、表の列名をエンティティの属性にマップします。
ただし、作成された外部キー制約の名前は設定できません。これを書いている時点では、ORマッピングファイル内のJPAアノテーションまたは構成パラメータを使用して外部キー制約の名前を指定することはできません。外部キー制約の名前を変更する必要がある場合は、JPAプロバイダに依存するのではなく、DDL文を自分で作成する必要があります。
JPA 2.1以降では、@ForeignKey注釈で外部キーを定義することができます。
残念ながら、名前を変更するだけではあまり役に立ちません。 FKのカスタム名を指定する場合は、FKのSQL定義も指定する必要があります。それは少なくともEclipseLink 2.5.0で動作する方法です。
JPA 2.1を使用すると、ちょうどforeignKey annotationでこれを行うことができます。
import javax.persistence.ForeignKey;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
@ManyToOne
@JoinColumn(name = "company_id", nullable = false, foreignKey = @ForeignKey(name="FK_COMPANY__ROUTE"))
private Company company;
を私は@ForeignKeyが@JoinTablesでは動作しませんか私にはわからないと思いますdeprecated hibernate equivalent
これは私が探していた答えです、ありがとう、私はManyToMany関係で動作させることができませんでしたが、ManyToOneでは魅力的に機能します。 – hectorg87
と混同しないでください私は@ JoinTable-> foreignKeyと@ JoinColumn-> foreignKeyでそれを試してみた
- 1. MySQL:外部キーに名前を付けることは重要ですか?
- 2. mongooseでdb nameと異なる外部キーの名前を付ける方法
- 3. 後継の名前が変更された外部キーの関連付け
- 4. 外部キーの名前を持つ@PrimaryKeyJoinColumn
- 5. カスタム外部キー列の名前
- 6. Asp.net mvcエンティティフレームワークのコード最初に別の名前の外部キーを関連付けます
- 7. 外部キーの索引付け
- 8. Nugetからの外部ライブラリに強力な名前を付け加える
- 9. Innodbは外部キーを受け付けません
- 10. テンソルに名前を付けますか?
- 11. 制約の名前を知らずに外部キーを削除しますか?
- 12. sqlite dbのスキーマの外部キー行にラベルを付けますか?
- 13. Rails - 異なる名前を持つ外部キーを持つ2つのモデル間の関連付け
- 14. 外部キーの名前を変更する方法は?
- 15. Laravelの外部キーIDと名前を返す
- 16. 外部キーの名前を変更する
- 17. 外部APIをバージョン管理するためのJavaパッケージの名前付け
- 18. 外部キーを追加するすべての列にインデックスを付けます
- 19. ActiveRecord - 外部キーと異なる命名規則を関連付ける?
- 20. 名前付きクエリに外部プロパティを設定する
- 21. YAML変数を使用してキーに名前を付ける
- 22. Django外部キーIDの代わりに外部キーの表示名
- 23. タイプに名前を付けません
- 24. 外部キーに関連付けられたレコードを作成します
- 25. SQLite3での外部キーの関連付け
- 26. どのようにViewModelクラスに名前を付けますか?
- 27. 自分のfirebase固有のID /キーの名前を付けます。 Javascript
- 28. CouchDBのキー値の名前付け方法
- 29. テーブルと関連付けるMySQLの外部キー関係とmysql_insert_id
- 30. 同じ名前の外部フォントにリンクしていますか?
多分それは質問で明らかではなかった? – giulius