baseNameと一致するときに1つのエンティティーのみを検出します問題とバグ翻訳者注:さいごに練習してみる1個のエンティティ作成の結果はこんな感じ画面上でなにが変わるのか。JDLで書いたコメントはどうなったのだろうか。†JDLはJHipster固有のドメイン言語です。すべてのアプリケーション、デプロイメント、エンティティ、およびそれらの関係を単一のファイル(または複数のファイル)にシンプルでユーザーフレンドリーな構文で記述できます。†https://www.jhipster.tech/jdl/このページは、上記原文の、googleの日本語訳を手直(googleの翻訳そのまま+pukiwiki用に、ちょっと整形)したものになります。どなたでも、編集可能です。気に入らない方は、どうぞ、修正をお願いします。IDEプラグイン/拡張機能のいずれかを使用できます。JDLモデルのURLを作成してエクスポートまたは共有することもできます。your-jdl-file.jdl。your-jdl-file.jdl。このコマンドは必ずJHipsterプロジェクトの下で実行してください。--to-jdlます。UMLの資料を参照してください。これはエンティティサブジェネレータを使用する代わりに使用でき、推奨されるアプローチです。考え方は、古典的なYeomanの質問と回答よりも、ビジュアルツールを使用して関係を管理する方がはるかに簡単であるということです。2.0ライセンス)のようなオープンソースプロジェクトです。JDL構文解析を行うためのノードライブラリとしても使用できます。あなたがJHipsterドメイン言語のJDLを気に入ってくれたら、GitHub?に、スターの評価を投票してくださいね。Resources」サンプルアプリケーションはJDLに翻訳されており、ここからhttps://github.com/jhipster/jdl-samples/blob/master/Oracle-Human-Resources-sample.jdl入手できます。IDEにもデフォルトでロードされます。サンプルを探しているのなら、ここhttps://github.com/jhipster/jdl-samplesにそのためのリポジトリがあります。†その後、JDLファイルを使用してエンティティを生成できます。拡張子が「.jh」または「.jdl」のファイルを作成するだけです。Atomでのインストール動画あり)https://www.jhipster.tech/jhipster-ide/でファイルを作成してダウンロードします。my_file.jdlは、JHipsterアプリケーションのルートフォルダで実行してください。my_file.jdlは、フォルダ内で実行するだけです。チームで作業している場合は、おそらく1つではなく複数のファイルを使用したいと思うでしょう。このオプションを追加したので、手動ですべてのファイルを1つに連結するのではなく、実行するだけで済みます。my_file2.jdlJDLのインポート中にエンティティを再生成したくない場合は、--json-onlyフラグを使用してエンティティ作成部分をスキップし、.jhipsterフォルダ内にjsonファイルのみを作成できます。--json-onlyデフォルトimport-jdlでは、変更されたエンティティだけが再生成されます。これにより、エンティティファイルに対するローカルの変更がすべて上書きされます。jhipster-coreローカルにインストールしてpackage.jsonファイルに保存します。†アプリケーションに既にエンティティがあり、JDLファイルを取得したい場合は、そうしないでください。あなたのためにそれをするサブジェネレータがあるので、あなたは最初からそれを書く必要はありません。<FILE_NAME>アプリのルートフォルダで実行するだけで、すべてのエンティティ、関係、およびオプションのエクスポートが1つのJDLファイルにまとめられます。注:サブ世代にファイル名を指定することもできません。デフォルトのものが選択されます。私たちは開発者にとってできるだけフレンドリーな構文を保つようにしました。あなたはそれでこれらのことをすることができます:アプリケーションをそのオプションとエンティティで宣言します。エンティティをその属性で宣言します。それらの間の関係を宣言する、そしてJHipster特有のオプションをいくつか宣言します。v5と互換性があります)。1つまたは複数のアプリケーションをインポートするために、JHipsterアプリケーションフォルダにいる必要はありません。基本的な宣言は次のように行われます。{}}JHipsterアプリケーションにはデフォルト値の設定があり、前の構文を使用すると、アプリケーションがデフォルト値を使用するようになります(特に選択しなかった場合と同じ)。結果のアプリケーションは以下のようになります。}}これらのオプションは、JDLで利用可能なもののほんの一例です。オプションの完全なリストは、ここの付録にあります。複数のアプリケーションが必要な場合は、次のようにします。}}あなたはあなたが望むだけ多くのファイルにあなたが望むだけの数のアプリケーションを持つことができます。エンティティの宣言は利用可能な最も基本的なものであり、今、あなたは欲しいアプリケーションでどのエンティティが生成されるべきかを設定することができます。前の例を改良しましょう。pagerこれらのアプリケーションとフォルダを生成すると、いくつかのことが起こります。4つのアプリケーションが作成されます。in8081サーバーポートを指定していなくても、JHipsterはデフォルトでポートを設定します。対して暗黙的ですDこれらは2つのマイクロサービスで生成されるため、このオプションはデフォルトで設定されます。オプションは以前と同じように機能しますデフォルト値が存在しない場合、ジェネレータはデフォルト値を設定します(のようにdatabaseType)。Coreでもまったく同じことができます。†エンティティ宣言は次のように行われます。エンティティの名前です。JHipsterがサポートしているフィールドの型オプションとして<validation>フィールドの検証。可能なタイプと検証はここで説明されているものです、検証が値を必要とするならば、単に(<value>)検証の名前の直後に追加してください。これがJDLコードの例です。min(18)}正規表現は(v1.3.6から)このように使われているのでちょっと特別です。pattern(/[A-Z]+/)}v4.9.Xより前のジェネレータを使用している場合は、このようなパターンを使用する必要がありますpattern('[A-Z]+'。JHipsterはデフォルトのidフィールドを追加しているので、心配する必要はありません。関係の宣言は次のように行われます。関係のエンティティ所有者の名前です。関係が移動するエンティティの名前です。型としてもう一方の端を持つフィールドの名前です。Author}必要に応じてデフォルトで一方(または両方)が設定されるため、注入フィールドの宣言はオプションです。前の例はこれと同じです。Author}もっと複雑にしましょう。本には必要な著者が1人、著者には複数の本があります。required}}ここでは、Bookクラスはのフィールドを通してリンクされるという名前の必須フィールドを持ちます。writernameAuthorもちろん、実際のケースでは、たくさんの関係があり、いつも同じ3行を書くのは面倒です。次のように宣言できるのです。D{c}}結合は常にidフロントエンドでリレーションを編集するときに表示されるデフォルトフィールドでもあるフィールドを使用して行われます。代わりに別のフィールドを表示する必要がある場合は、次のように指定できます。@MapsId?は以下のように宣言することができます。現在のところ1対1でのみサポートされています。jpaDerivedIdentifier}これはJHipster、両方返すRESTリソースを生成させるidとname名前ではなく、ユーザに示すことができるように、フロントエンドに連結されたエンティティのを。†JDLを使ってEnumを作るには、次のようにします。ファイル内の任意の場所にEnumを宣言します。}エンティティで、Enumを型として持つフィールドを追加します。†JHipsterは、イメージタイプと任意のバイナリタイプの間で選択できるので、素晴らしい選択をします。JDLを使えば同じことができます。エディタを使ってカスタムタイプ(DataType?を参照)を作成し、次の規約に従って名前を付けます。AnyBlob?または単にBlob「任意」のバイナリ型のフィールドを作成すること。イメージであることを意味するフィールドを作成すること。CLOB(テキスト(長))のフィールドを作成します。あなたは好きなだけデータ型を作成することができます。†JHipsterでは、ページネーションやDTOなどのエンティティのオプションを指定できます。JDLでも同じことができます。serviceImplキーワードはdto、paginate、serviceおよびwithこれらの変更をサポートするために、文法に追加されました。間違ったオプションが指定された場合、JDLはそれを素敵な赤いメッセージで知らせ、JHipsterのJSONファイルを破損しないように無視します。指定されたサービスは、リポジトリインタフェースを直接呼び出すリソースクラスを作成しません。これはデフォルトで最も単純なオプションです。Aを参照してください。serviceClass(Bを参照)を使用したサービスでは、リソースがサービスクラスを呼び出し、リポジトリクラスが呼び出されます。serviceImpl(Cを参照)を使用したサービスは、リソースクラスによって使用されるサービスインタフェースを作成します。このインタフェースは、リポジトリインタフェースを呼び出す具象クラスによって実装されます。確実でない限り、サービスを使用しないのが最も簡単な方法であり、CRUDに適しています。serviceを使用します。Jhipsterは不要なインターフェースのファンではありませんが、気に入った場合はimplでサービスを受けてください。serviceImplJDLはマスオプション設定もサポートします。paginationなお*とall同等です。最新バージョンでは除外されています(すべてのエンティティにオプションを設定する際に非常に強力なオプションです)。paginationJHipsterを使用すると、クライアントコードやサーバーコードが不要かどうかもわかります。Angular関連のファイルにサフィックスを追加したい場合でも、JHipsterでそれを実行できます。name>またはすべてのエンティティに対してフィルタ:フィルタ*。C最後に、テーブル名も指定できます(エンティティの名前がデフォルトで使用されます)。v3以降、マイクロサービスを作成できます。JDLでエンティティを生成するためのオプションをいくつか指定できます。マイクロサービスの名前と検索エンジンです。マイクロサービスの名前(JHipsterアプリの名前)を指定する方法は次のとおりです。C最初のオプションはJHipsterにあなたのマイクロサービスにあなたのエンティティを処理させたいことを伝えるために使われますが、2番目のオプションはあなたのエンティティをどのようにそしてあなたが検索したいかを指定します。v5以降で利用可能です。Javaで可能なことと同様に、アノテーションはアノテーションオプションであなたのエンティティにアノテーションを付けるように同じように働きます。このJDLコードを見てください。Cこれにより、実際に削除されるよりも多くのコードが追加されますが、複数のJDLファイルを使用する場合(マイクロサービスなど)には実際には便利です。v5.7以降と互換性があります)。1つまたは複数のデプロイメントをインポートするために、JHipsterアプリケーションフォルダーにいる必要はありません。基本的な宣言は次のように行われます。"yourDockerLoginName"}JHipsterデプロイメントには他のすべてのプロパティのデフォルト値を含む設定があります。前の構文を使用すると、デプロイメントにデフォルト値が使用されるようになります(特に選択しなかった場合と同じ)。結果として得られるデプロイメントは以下のようになります。"jhipster.192.168.99.100.nip.io"}これらのオプションは、JDLで利用可能なもののほんの一例です。オプションの完全なリストは、ここの付録にあります。複数の配置が必要な場合は、次のようにします。"yourDockerLoginName"}deploymentTypeごとに1つのデプロイメントを持つことができます。定義されているアプリケーションappsFoldersは、デプロイメントを作成しているのと同じフォルダー、またはで定義されているフォルダーになければなりませんdirectoryPath。上記の場合は、次のようなフォルダ構造が必要です。†JavadocとコメントをJDLファイルに追加することは可能です。Javaと同じように、この例ではJavadocコメントを追加する方法を示します。MySecondEntity{myEntity}}これらのコメントは、後でJHipsterによってJavadocコメントとして追加されます。JDLは独自のコメントを持っています。*/したがって、最初から始まるものはすべて//JDLの内部コメントと見なされ、Javadocとしてはカウントされません。Studioのディレクティブは#構文解析中に無視されます。コメントの別の形式は以下のコメントです。はい、コンマは必須ではありませんが、コードを間違えないようにするためにそれらを持つのが賢明です。カンマとそれに続くコメントを混在させる場合は、注意してください。Integer}カウントがするので、Aの名前にはコメントがありません。†JDLとの関係を作成する方法についての説明。車に運転手がいて、運転手に車がある双方向の関係。Driver{car}}市民がパスポートを持っているが、そのパスポートがその所有者だけにアクセスすることができない単方向の例。所有者に1つ以上のCarオブジェクトがなく、Carがその所有者を知っている双方向の関係。Car{owner}}この関係の単方向バージョンはJHipsterではサポートされていませんが、次のようになります。一対多の関係の相互バージョンは、以前と同じです。最後に、この例では、ドライバを知っているCarがあり、Driverオブジェクトはそのcarにアクセスできます。v1.2.7以降、JDLは数値定数をサポートします。†ここに特別なワークフローはありません。†マイクロサービスを扱うのは少し面倒ですが、JDLにはエンティティを適切に処理するためのオプションがいくつかあります。<MICROSERVICE_APP_NAME>、あなたはどのmicroserviceに生成されますどのエンティティを指定することができます。secondMS2つのJHipsterアプリケーション(「firstMS」と「secondMS」)があるとすると、2つのアプリケーションにJDLファイルをインポートすると、次のようになります。'firstMS'では、エンティティAとCが生成されます。「secondMS」では、エンティティBとCが生成されます。Cなぜなら、このエンティティがどこで生成されるかを指定するマイクロサービスオプションがなければ、それはどこでも生成されるからです。このJDLをモノリスアプリケーションにインポートすることにした場合、すべてのエンティティが生成されます(モノリスにはJDLの制限オプションはありません)。注:2つの異なるマイクロサービスで同じエンティティーを生成したい場合は、JDLファイルを更新する代わりに2つのJDLファイルを作成することができます。前の例は、このように書かれたはずがありません。secondMSこれが結果です。'firstMS'では、エンティティのみCが生成されます「secondMS」では、エンティティBとCが生成されます。構文解析時に、あるオプションが別のオプションと重複する場合は、後者が優先されるためです。JDLを使ってマイクロサービススタック全体を作成することもできます。このブログ記事https://medium.com/jhipster/create-full-microservice-stack-using-jhipster-domain-language-under-30-minutes-ecc6e7fc3f77を参照してください。†JDLでサポートされているアプリケーションオプションは次のとおりです。uaaBaseName?認証タイプがuaaの場合、ゲートウェイおよびマイクロサービスには必須です。二重引用符で囲む必要があります。entitySuffixエンティティのサフィックス。空の文字列の場合はfalseです。dtoSuffixDTODTOのサフィックス。空の文字列の場合はfalseです。†JDLでサポートされているアプリケーションオプションは次のとおりです。appsフォルダ[]アプリケーションのディレクトリ名をカンマで区切って指定します。リストでなければなりません。clusteredDbApps?[]クラスタDBを含むアプリケーションのディレクトリ名をカンマで区切って指定します。リストでなければなりません。dockerRepositoryName?dockerリポジトリの名前またはURL。二重引用符で囲む必要があります。openshiftNamespaceデフォルトdeploymentTypeがopenshiftの場合にのみ適用されます。storageTypeはかないはかない、しつこいdeploymentTypeがopenshiftの場合にのみ適用されます。†JDLでサポートされている型は次のとおりです。†これらのオプションには意味がありません。†これらのオプションは値を取ります。†これは構文解析システムに関する既知の問題であり、修正するのは難しいです。明らかな回避策は、マイクロサービスと内部のエンティティに異なる名前を使用することです。issue#308https://github.com/jhipster/jhipster-core/issues/308を参照してください。貢献ガイドラインhttps://github.com/jhipster/generator-jhipster/blob/master/CONTRIBUTING.mdに従っています。図書館自体に関する問題やプルリクエストを提出するために私たちのプロジェクトを使ってください。[#l70d7bf2]https://github.com/jhipster/jhipster-core/issuesJDLプルリクエストhttps://github.com/jhipster/jhipster-core/pulls何かを送信するときは、できるだけ正確にする必要があります。'アトミック'でなければなりません。†このページは、だれでも、編集可能にしてあります。気づいたらお願いします。以下、訳者の練習ターンです。翻訳は、だいだいこの辺にしておいて、エンティティを作ってみようと思います。JDLのサンプルって、HelloWorld?にしては、ちょっと、おおきいじゃないですか。小さく、やってみたら、どうなるか。実験してみましょうか。https://start.jhipster.tech/jdl-studio/を開いて、既存のコードをバッサリ消して、下記のコードをいれてみます。String}右上のダウンロードボタンを押すと、jhipster-jdl.jhがダウンロードされます。さっきダウンロードしたファイル名で、--forceオプションつけとかなかったので、いろいろ上書き確認されてしまった。successfully.1つのエンティティ追加だけで、これだけのファイルが修正されるのだね。画面上でなにが変わるのか。ユーザで、ログインしてみたところ、メニューに、「エンティティ」のドロップダウンが追加されてました。リストにダミーデータが入っている!↑JDLで書いたコメントはどうなったのだろうか。上記のサンプルのjdlに、記入したコメントは、生成に反映されるのか確認AEntityComment?は、どこに消えた?...どこにも、反映されてないもよう。AEntityNameComment?は、どこに消えた?...これも、反映されてないもよう。実験の結果、jdlのコメントは、生成時に、ないものとして、処理されてから、生成されていることがわかりました。エンティティにメールアドレスを追加しとしたら、どうなるのでしょう。String}でやってみます。見つかりませんカラムが更新されていないようだ。カラム追加には、何か、作法があるのだろう。ググると、liquibaseチェックサムが働いて、勝手に変更できないようになってるみたい。liquibase:clearCheckSumsってやらないと、叱られちゃうみたい。変更したいエンティティで、追加メニューがあることを確認しました。AEntityと書きます。すると、次のコマンドラインの質問がきます。exitカーソルキーの上下で、選びます。このやり方も、一度、ダミーデータがはいってしまうと、データベースの変更チェックがはたらいてしまいました。cleanというありがちな方法でした。さいしょっから、やっておけばよかった。