使用者實體

該實體是JHipster內部建立和管理的特殊實體。

它包含一些基本訊息:

  • 名和姓,
  • 登入名,
  • 一個電子郵件地址,
  • 密碼(不是明文),
  • 許可權

從頭開始建立應用程式將為您生成一些預設使用者,例如admin使用者或guest使用者。

可能的關係

以下是與此實體之間的可能關係:

  • User實體many-to-one 關係 (CarUser可以具有多對一關係)。 這將在您的新實體repository中生成一個特定的查詢,因此您可以根據當前的安全使用者過濾您的實體,這是常見的要求。 在生成的Angular/React用戶端UI上,您將在Car下拉選單中選擇User
  • User實體的many-to-manyone-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,因為前兩個解決方案非常容易實現