【发布时间】:2021-02-20 21:55:19
【问题描述】:
我有以下表格,
User
int id PK
Contact
int id PK, FK to User.id
所以我在Contact.java的代码如下,
@Getter(value = AccessLevel.NONE)
@Setter(value = AccessLevel.NONE)
@Id
@Column(name = "id", insertable = false, updatable = false)
private Integer id;
@OneToOne(fetch = FetchType.LAZY)
@MapsId
@JoinColumn(name = "id", nullable = false)
private User userId;
在我的User.java 中有,
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
所以根据上面的代码,我有一些疑问。
-
这是指示联系人的 id(主键)也是用户的外键的正确方法吗?
-
我需要使用
@PrimaryKeyJoinColumn还是@JoinColumn? -
根据上面的代码,我的仓库界面应该是怎样的?
public interface ContactRepository extends JpaRepository<Contact, User> {}或
public interface ContactRepository extends JpaRepository<Contact, Integer> {}
【问题讨论】:
标签: java spring-boot hibernate spring-data-jpa jpa-2.0