クラスがある場合:
@Entity
Order implements Serializable {
@Id
private Integer id;
...
}
そして:
@Entity
OrderLine implements Serializable {
@Id
private Integer id;
@ManyToOne
Order order;
...
}
プロパティorderは何にrow nameをマップしますか?
order_id, ORDER_ID or Order_id?
(@ JoinColumn(name = 'order_id')の省略は意図的です)
以下は、JPA 1.0仕様がJoinColumn
アノテーションについて書いているものです。
9.1.6 JoinColumnアノテーション
...
name
注釈要素は、外部キー列の名前を定義します。残りの注釈要素(referencedColumnName
以外)はこの列を参照し、列注釈と同じセマンティクスを持っています。単一の結合列があり、
name
注釈メンバーが欠落している場合、結合列名は次の連結として形成されます。参照関係プロパティーの名前または参照エンティティのフィールド。 "_";参照される主キー列の名前。エンティティにそのような参照関係プロパティまたはフィールドがない場合(つまり、結合テーブルが使用される場合)、結合列名は次の連結として形成されます。エンティティの名前。 "_";参照される主キー列の名前。...
したがって、この例では、外部キー列のデフォルト名はorder_id
になります。
あなたの質問が理解できないかもしれません。ただし、以下のようなものは必要ではありませんか?
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="order_id", nullable=false)
Order order;