我有兩張桌子:
@Entity
public class TestEntity {
@Id
@Column(name = "id")
private UUID id;
@OneToOne(targetEntity = InfoEntity.class, cascade = CascadeType.ALL)
@JoinColumn(name="id", referencedColumnName = "id")
private InfoEntity info;
...
}
@Entity
public class InfoEntity {
@Id
@Column(name = "id")
private UUID id;
@OneToOne(mappedBy = "info")
private TestEntity test;
...
}
基本上我想定義一個外鍵 from TestEntityto InfoEntityby id 欄位在兩個表中都是相同的。問題是,當我在 IntelliJ Idea 中檢查資料庫時,在鍵部分(檢查了兩個表)中看不到任何外鍵,只有它們的 PK。這段代碼有問題嗎?我已經按照另一個類似問題中的建議設定了該屬性:
jpa:
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
uj5u.com熱心網友回復:
問題是name inJoinColumn具有值id。將其更改為info_id例如:
@OneToOne(targetEntity = InfoEntity.class, cascade = CascadeType.ALL)
@JoinColumn(name="info_id", referencedColumnName = "id")
private InfoEntity info;
您TestEntity已經有一個 column id,所以它必須有另一個名稱。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/434310.html
