![](/img/trans.png)
[英]How To Delete an Object With Persistent/Non-Persistent Collection Field That is null?
[英]How to create a non-persistent Field in an JPA Entity?
我有一個名為Users
的實體,該實體具有登錄名,名稱和部門作為存儲在Users
表中的字段。
我的Spring-Boot
配置定義了為該應用程序中的用戶賦予系統管理員角色的部門。
關鍵問題是我希望登錄end-point
返回用戶數據以及其是否是系統管理員的其他信息。
我認為此信息應該在User類中,但是我不希望將此信息與其他字段一起存儲在數據庫中,因為管理部門可能會更改,或者用戶從一個部門更改為另一個部門而不管理用戶。系統。
( 編輯 )我將在用戶請求login()時定義此IsManager字段:我將獲取用戶的department
字段,並對照managerDepartment
的列表進行檢查以將其設置為true或false。
因此,問題是將信息放入實體類的非持久字段中是否正確(以及如何做到這一點),或者我是否可以在rest方法中更改ResponseEntity以添加附加信息(以及如何)?
簡短的答案是使用@Transient批注。 正確的答案是將UserEntity和UserDto分為兩個不同的類,並使用MapStruct進行轉換。
好吧,這似乎是一個偏愛問題/意見,希望因此仍未解決。
添加@Transient
字段沒有任何危害,但我的首選還是避免像這樣更改@Entities
。
因此,在非常相似的情況下,我決定創建一個包裝器Response
類,該類包含User
和諸如“間接角色”之類的東西(如系統管理員角色) 。
通常,這是因為我將所有實體類放在一個單獨的項目/ jar中,然后將其用於各種客戶端和服務。 然后,在@Entity
添加任何內容之前,我先分析是否還有其他依賴代碼需要此內容,或者它是否僅與此服務相關。
而且,如果添加僅與該特定服務/客戶端有關,則我不想將其添加到@Entity
並使它“更復雜”,因為僅需要此服務。
因此,我認為我的答案已包含在上一段中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.