4

Hibernate では、アソシエーションを結合するための列を指定するには、 @JoinColumn アノテーションを使用します。たとえば、次のようになります。

@ManyToOne
@JoinColumn(name="address_id")
public Address getAddress() { 
    return address; 
}

ほとんどの場合、列の名前はスネークケースのクラス名に_id. したがって、Hibernate から自動的に派生することを期待するのは合理的です (たとえば、Django の ORM で行われているように)。しかし、そのような動作は何らかの形で実装されていますか?

4

2 に答える 2

13

必須ではありません。JPA は構成の原則よりも規則に従います。つまり、アノテーションでオーバーライドできるデフォルト値が常に存在することを意味します。

の場合@JoinColumn、デフォルトの列名は次のように生成されます。<field_name>_<id_column_name>

field_nameaddressあなたの場合は、id_column_name関連するエンティティの id を参照していますid。したがって、address_idデフォルトで取得します。

于 2016-01-14T11:19:53.133 に答える
2

@JoinColumn注釈を付ける必要はありません。いつでも上書きできます。コードでそれを提供しない場合、Hibernate は自動的に生成します。つまり、列のデフォルト名です。

于 2016-01-14T12:37:12.337 に答える