使用者實體
該實體是JHipster內部建立和管理的特殊實體。
它包含一些基本訊息:
- 名和姓,
- 登入名,
- 一個電子郵件地址,
- 密碼(不是明文),
- 許可權
- 等
從頭開始建立應用程式將為您生成一些預設使用者,例如admin使用者或guest使用者。
可能的關係
以下是與此實體之間的可能關係:
- 與
User
實體many-to-one
關係 (Car
與User
可以具有多對一關係)。 這將在您的新實體repository中生成一個特定的查詢,因此您可以根據當前的安全使用者過濾您的實體,這是常見的要求。 在生成的Angular/React用戶端UI上,您將在Car
下拉選單中選擇User
。 - 與
User
實體的many-to-many
和one-to-one
關係,但是另一個實體 必須 是該關係的所有者(Team
可以與User
具有多對多關係。 但只有Team
可以新增/刪除User
,而User
不能新增/刪除Team
)。 在前端UI上,您還可以在多選框中選擇一個User
。
修改使用者實體
如果遇到需要更改User
實體的問題,建議不要這樣做。
修改此預設實體可能會改變您的應用程式,具體取決於更改的性質。
相反,還有其他可用的解決方案,例如:
- 建立一個由
User
實體組成的實體, - 擴充套件
User
實體
使用複合
如果您需要向實體新增新欄位或為其新增關係, 您需要做的就是建立另一個實體,例如:
entity ApplicationUser {
additionalField Integer min(42) max(42)
}
relationship OneToOne {
ApplicationUser{internalUser} to User
}
這是此程式碼段落的作用:
- 用一個欄位建立一個名為
ApplicationUser
的新實體, - 建立一個從該實體到標準
User
實體的關係:- 我們使用
OneToOne
關係將JHipster建立的實體連結到這個新實體, - 我們使用單向關係,不修改內部管理的
User
實體。
- 我們使用
這是推薦的解決方案,因為它可以使用JDL來實現。
該解決方案非常適合在不實際修改的情況下將新欄位和關係(除其他事項外)新增到User
實體。
使用繼承
該解決方案與上一個解決方案具有相同的功能,但是不如第一個解決方案簡單明瞭,因為您需要:
- 手動建立一個新實體,
- 修改程式碼以使其使用這個新實體,
- 潛在地管理您自己的資料庫遷移,以保留該新實體(取決於更改的性質)。
但是,它具有與上一個相同的優點:您無需手動更改User
實體。
建立自己的預設使用者實體
實際上不建議使用此選項,但是可以透過使用使用者管理跳過選項(JDL中的skipUserManagement
應用程式選項)來實現。
JHipster在某些情況下(對於某些選項)在內部使用此選項,並且使用它將:
- 不會生成任何使用者管理程式碼(前端和後端),
- 允許您更新
User
實體(向其中新增/刪除任何欄位),
此外,您還必須建立實體並親自處理使用者管理。
最好將其保留為false
,因為前兩個解決方案非常容易實現。