【发布时间】:2011-04-17 10:45:00
【问题描述】:
我正在阅读this 的书。关于“@OneToOne 单向”的解释,作者采取了以下Customer、Address 的例子:
@Entity
public class Customer{
@Id @GeneratedValue
private Long id;
private String name;
private Address address;
//few other columns, getters/setters
}
@Entity
public class Address{
@Id @GeneratedValue
private Long id;
private String city;
//few other columns, getters/setters
}
而且是这么说的-
- 这是最低要求 注释。
- 没有@OneToOne 注释 需要。(因为默认情况下, 持久性提供者将承担它)
- @JoinColumn 注释允许您 自定义外来的映射 钥匙。如下图,我们可以重命名 ADD_FK 的外键列
然后关于这个:
@Entity
public class Customer {
@Id @GeneratedValue
private Long id;
private String name;
@OneToOne
@JoinColumn(name="ADD_FK")
private Address address;
//few other columns, getters/setters
}
@Entity
public class Order {
....
List<OrderLine> orderLines;
...
}
- 默认情况下,OneToMany 关系是 假设当收集一个 正在使用实体类型。
我的问题:
以上陈述有效吗?因为当我在 Hibernate 上尝试这些示例时,我遇到了异常。
声明是否按照 JPA 标准?
- 还是 Hibernate 是 实施方式不同?
请澄清。
【问题讨论】: