【发布时间】:2021-11-20 10:57:30
【问题描述】:
这是我第一次尝试使用一对一关系进行映射。我有以下实体:
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Client {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Size(max = 100)
private String name;
@Email(message = "Email should be valid")
private String email;
@OneToOne
@PrimaryKeyJoinColumn
private Key key;
}
与
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Key {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(unique = true)
private UUID number;
@OneToOne
private Client client;
public Key(UUID number) {
this.number = number;
}
}
他们看不到对方,我在外键部分得到 NULL。在下面的帖子中使用EntityManager类时有一个解决方案:
JPA / Hibernate OneToOne Null in foreign key
很遗憾,这种方法对我不起作用。
数据库快照:
感谢您的回答!
【问题讨论】:
-
删除 @PrimaryKeyJoinColumn 并确保您设置了 Key
-
并尝试使用
JoinColumn
标签: java spring hibernate jpa orm