【发布时间】:2014-01-22 16:43:39
【问题描述】:
当我从我的实体类自动生成表时,JPA 如何处理 1:1 单向关系与我自己创建 SQL 表时如何制作这些表时,我感到困惑。
我的问题是如何设置外键。
假设我有一个这样的客户实体和一个地址实体:
@Entity
public class Customer{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToOne(cascade = CascadeType.ALL)
private Address address;
//setters and getters
}
@Entity
public class Address{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String streetName;
//setters and getters
}
如果我从这两个实体类生成 sql 表,那么 Customer 表将有一个引用 Address 表的外键列。
有没有办法建立 OneToOne 单向关系,其中 JPA 将外键粘贴在目标表(地址表)上,而不是像我的代码示例中那样粘贴在 Customer 表上,还是我必须这样做双向关系并使用@Mapping 注解显示更明确的所有权以实现这种表结构?
【问题讨论】:
标签: mysql jakarta-ee jpa