微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

具有主键但又是外键的JpaRepository正确的数据类型是什么?

如何解决具有主键但又是外键的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

所以根据上面的代码我有一些疑问。

  1. 表明联系人的id(主键)也是User的外键的正确方法是吗?
  2. 我是否需要使用@Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; @PrimaryKeyJoinColumn

根据上面的代码,我的存储库界面应该如何?

@JoinColumn

public interface ContactRepository extends JpaRepository<Contact,User> {}

那么有人可以帮助我解决这个问题吗?预先感谢。

解决方法

  1. 请勿将外键用作主键
  2. JoinColumn
  3. 合同具有整数ID,因此<Contact,Integer>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。