我有一个用户表、角色表和一个通知表。user_id 是将用户链接到通知的外键。在我的用户类中,我已经通过其外键role_id 访问另一个表角色。如图所示@Data@Entity@Table(name = "users")public class User {`enter code here` @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column private Long id; @Column @NotBlank @Size(max = 40) private String username; // Valid From @Column private Date validFrom; // Valid To @Column private Date validTo; @Column @NotBlank @Size(max = 100) private String password; @OneToOne(fetch = FetchType.LAZY) @JoinTable(name = "user_roles", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "role_id")) private Role role; public User() { } public User(String username, String password) { this.username = username; this.password = password; }}如何使用 @JoinTable 注释连接到通知表?它不接受重复。
1 回答

子衿沉夜
TA贡献1828条经验 获得超3个赞
您不得使用 @JoinTable 注释。@JoinTable 注解仅用于@ManyToMany 关系。
您需要创建一个包含三个字段的新实体,并且每个字段必须具有 @ManyToOne 和 @JoinColumn 注释。例如:
@Entity
@Table(name = "table_name")
class NewEntity {
//Id and anothers fields
@ManyToOne
@JoinColumn(name = "user_id")
private Users users;
@ManyToOne
@JoinColumn(name = "role_id")
private Roles roles;
@ManyToOne
@JoinColumn(name = "notification_id")
private Notifications notifications ;
//getters and setters
}
添加回答
举报
0/150
提交
取消