[英]How can I create a Table with two Foreign Key References to one other Table via UCanAccess?
[英]How do i connect one table in a mySQL database to more than one other table via foreign keys?
我有一個用戶表,角色表和通知表。 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批注連接到通知表? 它不接受重復。
您一定不能使用@JoinTable批注。 @JoinTable批注僅用於@ManyToMany關系。
您需要使用三個字段創建一個新的Entity,每個字段必須具有@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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.