web-dev-qa-db-ja.com

jhipsterで生成された既存のエンティティを変更する方法は?

Jhipsterジェネレーターを使用して、プロジェクトを作成します。 jhipster documentation で提供される情報に従って、手動でエンティティを生成しました:

データベースの更新を手動で行うことを好む(または必要とする)場合、開発ワークフローは次のとおりです。JPAエンティティを変更(フィールド、関係などを追加)新しい「変更ログを作成src/main/resources/config/liquibase/changelogディレクトリにあります。そのディレクトリ内のファイルには、作成日(yyyyMMddHHmmss形式)の接頭辞が付けられ、その後、ファイルの動作を説明するタイトルが付けられます。たとえば、20141006152300_added_price_to_product.xmlは適切な名前です。この「変更ログ」ファイルをsrc/main/resources/config/liquibase/master.xmlファイルに追加します。次回アプリケーションを実行するときに適用されます。Liquibaseの使用に関する詳細情報が必要な場合は、 http://www.liquibase.org

ここでは、ドキュメントに記載されている、追加する方法!!!フィールドまたはエンティティ間の関係(JPAエンティティ)を削除する場合はどうすればよいですか?

ありがとう

42
Pracede

1)エンティティを表すjsonファイルを編集します(フィールドの追加/削除、構文は非常に簡単です。'fieldsContainOneToMany 'などの一般的なエンティティプロパティの変更が必要な場合はファイルの最後を確認してください)。でそれを見つける:

<jhipster_root_folder>/.jhipster/entityName.json

2)コードをビルドします。

3)プロジェクトのルートで次のコマンドを実行します:

yo jhipster:entity entityName

注:このコマンドはデフォルトですべての手動変更を上書きします。最終的に不要な変更を元に戻すためにこのコマンドを実行する前に、VCSリポジトリでコミットすることをお勧めします。

4)実行

mvn liquibase:diff
55
Roberto

私はjhipster 3.4.2のために働いたソリューションを持っています、それは1日で私の結果です、あなたに役立つことを願っています:)

  1. yo jhipster:entity entityNameを実行します
  2. エンティティの変更(追加、削除、...)、最後に、jhipsterはファイルを上書きする質問をします*重要な注意:changelog .xmlにはNOを選択しますファイルとnavbar.htmlファイル。
  3. プロジェクトに戻り、mvn compile liquibase:diffを実行します
  4. アプリケーションを実行する
  5. 完了
24
ThanhLD

同じページで次の文を見ることができます:

開発でMySQLまたはPostgresqlを使用することを選択した場合、mvn liquibase:diffゴールを使用して変更ログを自動的に生成できます。

Liquibase Hibernateはpom.xmlで設定されるMavenプラグインであり、Spring application.ymlファイルから独立しているため、デフォルト設定を変更した場合(データベースパスワードを変更した場合など)、両方のファイルを変更する必要があります。

開発ワークフローは次のとおりです。

JPAエンティティを変更します(フィールド、リレーションシップなどを追加します)アプリケーションをコンパイルします(これはコンパイルされたJavaコードで動作するため、コンパイルすることを忘れないでください!)を実行しますmvn liquibase:diff (またはmvn compile liquibase:diff to compile)新しい「変更ログ」がsrc/main/resources/config/liquibase/changelogディレクトリに作成されます。この変更ログを確認して、src/main/resources/config /に追加します。 liquibase/master.xmlファイル。次回アプリケーションを実行するときに適用されます。Mavenの代わりにGradleを使用する場合は、。/ gradlew liquibaseDiffChangelogを実行して同じワークフローを使用し、必要に応じてliquibase.gradleのデータベース構成を変更できます。 。

したがって、JPAエンティティを変更(削除、追加など)し、mvn compile liquibase:diffを実行し、変更をmaster.xmlに入れるだけです。

6
brevleq

既存のエンティティを変更 インタラクティブに、例えばエンティティFooyo jhipster:entity Fooを使用します。

これにより、すべてのエンティティとダイアログを再生成できます。

RDBMSとliquibaseを使用している場合、changelogファイルを作成し、master.xmlに追加する必要があります。ここで役立つのは、既存のデータベースに対して実行できるmvn liquibase:diffまたはgradlew liquibaseDiffを使用することです。ただし、変更ログファイルを手動で書き込むことをお勧めします。

6
Jörg

Jhipster 5.7.0の場合、エンティティコマンドを再度実行すると、変更するかどうかを尋ねられます。

 % jhipster entity device                                 
INFO! Using JHipster version installed locally in current project's node_modules
INFO! Executing jhipster:entity device
INFO! Options: from-cli: true

Found the .jhipster/Device.json configuration file, entity can be automatically generated!


The entity device is being updated.

? Do you want to update the entity? This will replace the existing files for this entity, all your custom code will be overwritten 
  Yes, re generate the entity 
❯ Yes, add more fields and relationships 
  Yes, remove fields and relationships 
  No, exit
1
Martin Naughton

リレーションシップのようなjhipsterエンティティを変更して新しいテーブルを追加するために私がやったことは:

  1. (何かが起こる前にプロジェクトを保存してください:p)yo jhipster:entity TableToEditおよびEdit your want .. EditTableOrAdd
  2. 次に、新しいテーブルを追加します(オプション)。
  3. その後、データベースのすべてのテーブルを変更または削除して、SQLパーツに新しいフィールドとリレーションを自動的に生成する必要がありました。

注:この手順の後、エラー、serverError、または何かを再生成する場合、de entity regenerate Entity を再生成します。もちろん、すべてのデータを保持したい場合、これは良い選択肢ではありません。

0
Daniel Alves