【发布时间】:2014-09-07 14:20:45
【问题描述】:
我有两个表,在一个列上有 one-to-one 映射。我想使用注释设置unidirectional one-to-one hibernate 映射,因为我希望能够从连接的表中获取结果,但不想对子表进行外部约束检查。
这是我的快速代码。
@Entity
@Table(name = "student")
public class student {
// primary key and other column definition here..
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name="address_id")
private Address address;
// getters and //setters
}
@Entity
@Tale(name = "address")
public class address {
@Id
@GeneratedValue(generator = "hibernate-uuid")
@GenericGenerator(name = "hibernate-uuid", strategy = uuid")
@Column(name = "id", unique = true, length = 36, nullable = false)
private String id;
@Column(name="address_id")
private String address_id;
// getters and setters
}
当我尝试插入学生(但不是地址)时,上面给了我以下异常。
Caused by: org.hibernate.AnnotationException: A Foreign key refering com.test.Student from com.test.Address has the wrong number of column. should be 2
我在这里做错了什么?
【问题讨论】:
-
如果您是 Hibernate 新手,您可能会发现我的教程 here 很有用。
标签: java hibernate mapping one-to-one