Kde*_*per 23 java hibernate jpa openjpa
当我们上课时:
@Entity
Order implements Serializable {
@Id
private Integer id;
...
}
Run Code Online (Sandbox Code Playgroud)
和:
@Entity
OrderLine implements Serializable {
@Id
private Integer id;
@ManyToOne
Order order;
...
}
Run Code Online (Sandbox Code Playgroud)
属性订单将映射到哪个行名称?
order_id, ORDER_ID or Order_id?
(省略@JoinColumn(name ='order_id')是故意的)
Pas*_*ent 25
以下是JPA 1.0规范关于JoinColumn注释的内容:
9.1.6 JoinColumn注释
...
该
name注释元素定义了外键列的名称.其余的注释元素(除了referencedColumnName)引用此列,并且具有与Column注释相同的语义.如果存在单个连接列,并且
name缺少注释成员,则连接列名称将形成为以下内容的串联:引用关系属性的名称或引用实体的字段; "_"; 引用的主键列的名称.如果实体中没有这样的引用关系属性或字段(即,使用了连接表),则连接列名称形成为以下内容的串联:实体的名称; "_"; 引用的主键列的名称....
因此,在您的示例中,外键列的默认名称将是order_id.
Osc*_*han 23
我可能不明白你的问题.但是,你不需要像下面这样的东西吗?
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="order_id", nullable=false)
Order order;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28552 次 |
| 最近记录: |