簡體   English   中英

在 jhipster 微服務中使用帶有附加數據的用戶實體

[英]Use user entity with additional data in a jhipster microservice

我目前正在做一個 Jhipster 項目。 我設置了 jhipster uaa 來注冊用戶(默認實現)。 現在我想為用戶配置文件創建一個用戶服務(jhipster 微服務),其作用類似於 api。 我已經創建了一個應該擴展默認用戶實體的用戶配置文件實體。 我還可以通過網關將用戶分配給用戶配置文件(如果這工作正常,我不放心),但現在我遇到了一些我不明白的問題/事情:

  1. 我需要在微服務、網關或兩者中創建用戶配置文件實體嗎? 如果我按照 jhipster doc ( https://www.jhipster.tech/tips/022_tip_registering_user_with_additional_information.html ) 給出的說明操作,我會收到以下錯誤代碼:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: Unknown entity name: org.springframework.security.core.userdetails.User

但如果這個例子是針對微服務用例的,我不放心。 這也只有在我刪除 id 值上方的@GeneratedValue(strategy = GenerationType.IDENTITY)注釋時才會發生。

  1. 我真的需要一個單獨的用戶服務來獲取“擴展”用戶實體(用戶配置文件)嗎? 我在想,userservice-api 返回用戶配置文件(它應該與用戶實體共享用戶 ID)。

  2. 我想在用戶注冊表單中添加其他字段(用戶名、地址、郵政編碼、城市)。 是否可以使用此信息來創建默認用戶實體以及由我的微服務處理的擴展用戶配置文件?

我感謝任何幫助,因為這是一個非常重要的項目。 如果我對 jhipster 微服務“機制”有什么誤解,請告訴我。 我應該注意,我在 spring 開發方面處於初學者水平,如果我遺漏了一些明顯的東西,很抱歉。

我認為 DTO 將是最有效的解決方案。 Jhipster 已經集成了 Mapstruct。 您創建一個 dto,在創建新用戶時傳遞給您的服務層,然后映射器執行映射以擁有 defaultUser 並將其持久化。 我建議您閱讀 Jhipster 網站上的 Mapstruct 文檔或示例,這是鏈接: https://www.jhipster.tech/using-dtos/

好的,所以我想出了一個解決方案。 對於任何處理此類問題的人:我再次查看了 jhipster 提供的解決方案: https://www.jhipster.tech/tips/022_tip_registering_user_with_additional_information.html

這有點過時了,但總的來說它仍然有效。 問題是,文件移動了位置並更改了一些方法(我之前沒有注意到),但原理仍然適用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM