ユーザーエンティティにいくつかの属性を追加したいのですが、それについてグーグルで検索したところ、同様の質問が見つかりました:
jhipsterで生成された既存のエンティティを変更するにはどうすればよいですか?
この投稿の手順を実行したところ、@ Robertoが説明したようにファイルuser.jsonがどこにも見つかりませんでした
1)エンティティを表すjsonファイルを編集します(フィールドの追加/削除、構文は非常に簡単です。'fieldsContainOneToMany '...などの一般的なエンティティプロパティに変更が必要な場合は、ファイルの最後を確認してください)。それを見つける:
<jhipster_root_folder>/.jhipster/entityName.json
どうすればこれを解決できますか?
最善の解決策は、@ Pedroと@alcuvi(JHipsterドキュメントを参照)が提供する2つの解決策の間の妥協点だと思います。
まず、追加のフィールドを使用して「ExtendedUser」エンティティを作成します(gitを使用することを忘れないでください。これを元に戻すか、エンティティを削除する必要があります)。 「ユーザー」との1対1の関係は必要ありません。
その後、「ExtendedUser」からJHipsterアプリケーションの他の部分に多くの部分をコピーできます。
AccountResource.JavaとUserService.Java(およびそれらを使用する場合はUnitTests)を適応させます。このステップは主に、前のステップでコピーされたゲッターとセッターを使用して実行されます。 JHipsterのドキュメント( https://jhipster.github.io/tips/022_tip_registering_user_with_additional_information.html )がここで役立つ場合があります。
「ExtendedUser」エンティティを削除します(gitを使用するか、手動で参照してください: jhipsterを使用してエンティティを作成した後にエンティティを削除する方法 )
*利点*は次のとおりです。
この情報が将来他の開発者に役立つことを願っています!
Userエンティティは、JHipsterが電子メールやパスワードなどのすべてのユーザー管理を管理するために使用するエンティティです。User.jsonファイルは自動生成されたエンティティであるため、見つかりません。これらの.jsonファイルは、yo jhipster:entity <entityName>
を実行した場合にのみ作成されます。
ユーザーエンティティにフィールドを追加/削除するには、手動で行う必要があります。つまり、User.Java
を編集し、liquibaseチェンジセットを作成し、必要に応じてUI内のすべての関連ファイルを変更します。
Jhipster(バージョン4)の公式ドキュメントには、これに関するエントリがあります。
https://jhipster.github.io/tips/022_tip_registering_user_with_additional_information.html
要約すれば...
その手動ソリューション。提案された解決策は、ユーザーに追加するフィールドを使用してエンティティを作成し、1対1の関係でエンティティにリンクすることです。
あるいは
JDL-Studioで新しいフィールドを持つExtendedUserを作成する場合、jhipsterimport-jdlコマンドは、エンティティメニューに「extendedUser」オプションを作成します。このオプションで、これらのフィールドの値を設定し、目的のユーザーにリンクできます。
私は最善の解決策ではないと思います...
継承はどうですか?組み込みのUser
クラスを新しいフィールドで拡張するだけです。例えば、 public class ExtendedUser extends User
。そして、コード内でUser
クラスをExtendedUser
に置き換えます。 dto、serviceなどを更新します。また、必要に応じてクラスキャストを使用できます。どう思いますか?