java——为什么我的实体类在我的表中插入了两个Id?Spring Boot JPA
发布时间:2022-04-07 03:56:48 605
相关标签: # 移动端
我有两个实体类User
和UserProfile
这个User
表中有一个用于用户ID的主键,该ID是一个长数据类型。这个用户ID应该也是用户配置文件中的主键。User
也有电子邮件作为一个专栏,我想被链接到用户_配置文件也。我遇到的问题是,由于某种原因,当我已经在user_profile表中设置了主键user_id时,名为id的列被插入到我的表中。有人知道我做错了什么吗?
用户:
import javax.persistence.*;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
@Entity
@Table( name = "users",
uniqueConstraints = {
@UniqueConstraint(columnNames = "username"),
})
@SecondaryTable(name = "user_profile")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "username")
@NotBlank
@Size(max = 20)
private String username;
@Column(name = "email", table = "user_profile")
@NotBlank
@Size(max = 50)
@Email
private String email;
@NotBlank
@Size(max = 120)
private String password;
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable( name = "user_roles",
joinColumns = @JoinColumn(name = "user_id"),
inverseJoinColumns = @JoinColumn(name = "role_id"))
private Set roles = new HashSet<>();
//getter methods
//setter methods
}
用户档案:
import javax.persistence.*;
import java.util.Objects;
import java.util.Optional;
import java.util.UUID;
@Entity
@Table(name = "user_profile")
public class UserProfile {
@Id
private Long id;
@OneToOne(fetch = FetchType.LAZY)
@MapsId
private User user;
// @JoinColumn(name = "email")
// @OneToOne(fetch = FetchType.LAZY)
// private User email;
@Column(name = "profile_img") //S3 image Link
private String profile_img;
@Column(name = "profile_banner") //S3 image Link
private String profile_banner;
//getter methods
//setter methods
}
用户表:
用户配置文件表:
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报