如何解决具有主键但又是外键的JpaRepository正确的数据类型是什么?
我有下表,
:timer.cancel(ref)
所以我在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(主键)也是User的外键的正确方法是吗?
- 我是否需要使用
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id;
或@PrimaryKeyJoinColumn
?
根据上面的代码,我的存储库界面应该如何?
@JoinColumn
或
public interface ContactRepository extends JpaRepository<Contact,User> {}
那么有人可以帮助我解决这个问题吗?预先感谢。
解决方法
- 请勿将外键用作主键
- JoinColumn
- 合同具有整数ID,因此
<Contact,Integer>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。