gpt4 book ai didi

mysql - JavaEE 1 :1 Unidirectional Relationship

转载 作者:行者123 更新时间:2023-11-29 00:21:23 25 4
gpt4 key购买 nike

当我从我的实体类自动生成我的表时,我对 JPA 如何处理 1:1 单向关系感到困惑,而如果我自己创建 SQL 表,我将如何制作这些表。

我的问题是关于外键是如何设置的。

假设我有一个 Customer 实体和一个 Address 实体,如下所示:

@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 将外键粘贴在目标表(地址表)上,而不是像我的代码示例中那样粘贴在客户表上,还是我必须这样做双向关系并通过 @Mapping 注释显示更明确的所有权以实现这种表结构?

最佳答案

要使外键出现在另一个表上以形成 1-1 单向关系,您需要切换“拥有”端:将客户放在地址中,从客户中删除地址。然后客户的外键将在地址表中。

关于mysql - JavaEE 1 :1 Unidirectional Relationship,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20930316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com