【发布时间】:2020-03-17 11:42:03
【问题描述】:
我有三张桌子,比如说 A、B 和 C:
Table A
id
country
B_id
Table B
id
name
Table C
country
name
description
表 C 有一个由列组成的复合 PK:country 和 name。
现在我想建立一个从表 A 的实体到表 C 的实体的 OneToOne 连接。
实体 C:
@Table(name = "C")
public class C {
@EmbeddedId
private CountryName id;
@Column(nullable = false)
private String description;
...
}
在实体 A 中,我正在尝试这样的事情:
@Table(name = "A")
public class A {
@Id
@Type(type = "pg-uuid")
private UUID id;
@Column(nullable = false)
private String country;
@JoinColumn(updatable = false, insertable = false)
private B b;
@OneToOne(optional = false)
@JoinColumns({
@JoinColumn(name = "country"),
@JoinColumn(name = "B.name")
private C c;
对B 表的name 列的引用不起作用。你能帮忙知道如何实现这一点吗?
【问题讨论】:
-
让我明白:A.country == C.country && A.country == B.name ?
标签: java postgresql hibernate jpa spring-data-jpa