這是我的用戶物體的一部分,如您所見,它具有列舉角色
@Entity
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String name;
private String email;
private String password;
@ElementCollection(fetch = FetchType.EAGER)
private List<Role> roles;
}
缺少表角色,我只有一個鏈接表user_roles。如果我看不到資料如何存盤?如果無法編輯鏈接表,如何在 PostgreSQL 中手動更改角色?


uj5u.com熱心網友回復:
角色資訊存盤在user_roles. @ElementCollection集合將映射到沒有任何主鍵列并且具有對其父級(即users)的 FK 列參考的表的性質。
的角色列中的值user_role不是任何角色ID,您可以在某些角色主表中找到它的記錄。它只是Role列舉的序數。
如果您將其更改為:
@ElementCollection
@Enumerated(EnumType.STRING)
private List<Role> roles;
然后 user_role 中的資料將變為:
user_id | roles
----------------
1 | ADMIN
1 | DEV
2 | DEV
3 | ADMIN
其中角色列中的值成為Role列舉的專案名稱。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/424553.html
