我有兩張桌子。其中一位業主和另一位是比爾。在兩個表中我都有電子郵件列。所以我想使用電子郵件作為外鍵。但所有者 ?d ?s 自動成為外鍵。我怎樣才能做到這一點?
這是賬單方
@Id
private Long id;
private static final Integer LIMIT=200;
private String firstName;
private String lastName;
private String email;
private Integer amount;
private String productName;
@ManyToOne
@JoinColumn(name = "email")
private PurchasingSpecialist owner;
這是業主方
@Id
private Long Id;
private String firstName;
private String lastName;
private String email;
@OneToMany(
cascade = CascadeType.ALL
)
@JoinColumn(name = "email",referencedColumnName = "email")
private List<Bill> bills;
但仍然自動創建 owner_id 列
uj5u.com熱心網友回復:
首先,您必須Long id從 PurchasingSpecialist 物體中洗掉屬性。并添加@Id到電子郵件列。然后它看起來像這樣。然后 JPA 將創建電子郵件列作為物體的主鍵。
@Id
@Column(length = 200)
private String email;
private String firstName;
private String lastName;
@OneToMany(
cascade = CascadeType.ALL
)
@JoinColumn(name = "email",referencedColumnName = "email")
private List<Bill> bills;
下一步是將email主鍵添加到賬單物體。使用@JoinColumn(name = "email",referencedColumnName = "email")它時將在 Bill Entity 中創建一個“電子郵件”列。因此,private String email;in bill 物體應該被移除。您的 Bill 物體將如下所示。
@Id
private Long id;
private static final Integer LIMIT=200;
private String firstName;
private String lastName;
private Integer amount;
private String productName;
@ManyToOne
@JoinColumn(name = "email")
private PurchasingSpecialist owner;
急診室看起來像這樣。我想這就是你期望的結果。

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/317097.html
標籤:爪哇 PostgreSQL 弹簧靴 jpa 弹簧数据-jpa
