JHipsterドメイン言語(JDL) - オプション パーマリンク to " JHipsterドメイン言語(JDL) - オプション"
概要 パーマリンク to "概要"
JHipsterでは、ページ区切りやDTOなどのエンティティのオプションを指定できます。 JDLでは、エンティティのアノテーションまたは次の構文を使用して、同じ操作ができます。
entity A {
name String required
}
entity B
entity C
dto A, B with mapstruct
paginate A with infinite-scroll
paginate B with pagination
paginate C with pager // pagerはAngularJSでのみ利用可能
service A with serviceClass
service C with serviceImpl
使用可能なオプションの完全なリストは、こちらにあります。
操作方法 パーマリンク to "操作方法"
次の2種類のオプションがあります。
- 単項(オプション値なし)
- 二項(値付き)
エンティティにオプションを適用するには、次の3つの方法があります。
- オプション名(
dto
,readOnly
など)の使用。例を参照してください。 - アノテーションの使用
use XYZ
形式を使用
これらを混在させると読みにくくなるため、お勧めしません。
構文 パーマリンク to "構文"
通常のフォームの場合は以下です。
<オプション名> <エンティティリスト>
または
<オプション名> <エンティティリスト> with <オプション値>
または
<オプション名> <エンティティリスト> with <オプション値> except <除外エンティティリスト>
または
<オプション名> <エンティティリスト> except <除外エンティティリスト>
- 単項オプションの場合
- オプション名とリストが必要です。
- 除外されるエンティティはオプションで
except
キーワードを付けます(詳細は以下を参照してください)。
- 二項オプションの場合
- エンティティリストは、
with
キーワードおよびオプション値の前に配置されます。 - ここでも、除外されるエンティティは最後に
except
キーワードを付けます。
- エンティティリストは、
アノテーションは以下です。
@<オプション名>
entity <エンティティ名>
または
@<オプション名>(<オプション値>)
- Javaと同様に、アノテーションは括弧内の値を取ることができます。
- オプションに応じて、値はオプションになる場合とならない場合があります。
XYZオプションを使用 パーマリンク to "XYZオプションを使用"
useオプション形式で、エンティティーにいくつかのオプションを指定できます。 これはJHipster Code 2020で作成されたもので、その作成理由は次のとおりです。
- オプションを無効にする課題を解決します(JHipsterには’no’を示す方法が複数あります:
no, false, none
) - エンティティごとにオプションをグループ化する方法を提示できます
entity A
entity B
entity C
use serviceClass for * except C
use mapstruct, serviceImpl, infinite-scroll for A, B
use pagination for C
useオプションの値 | コメント |
---|---|
mapstruct | エンティティのDTOを作成するかどうか。エンティティにDTOがあってもサービスがない場合は、'serviceClassが使用されます' |
serviceClass | |
serviceImpl | |
pagination | アプリケーションがCassandraを使用する場合、オプションとしてのページ区切りは禁止です |
infinite-scroll | アプリケーションがCassandraを使用する場合、オプションとしてのページ区切りは禁止です |
elasticsearch | アプリケーションでsearchEngineオプションを有効にする必要があります |
couchbase | アプリケーションでsearchEngineオプションを有効にする必要があります |
例 パーマリンク to "例"
各例には、次の3つの形式があります。
- 標準形式
- アノテーションベースの形式
- use形式(該当する場合)
基本の単項の例 パーマリンク to "基本の単項の例"
標準形式:
entity A
readOnly A
アノテーションベース形式:
@readOnly
entity A
基本の二項の例 パーマリンク to "基本の二項の例"
標準形式:
entity A
dto A with mapstruct
アノテーション形式:
@dto(mapstruct)
entity A
use
キーワードの使用:
entity A
use mapstruct, serviceImpl, pagination for A
all, * の例 パーマリンク to "all, * の例"
all
と *
はエイリアスです。
標準形式:
entity A
entity B
dto all with mapstruct
アノテーション形式:
@dto(mapstruct)
entity A
@dto(mapstruct)
entity B
use
キーワードの使用:
entity A
entity B
use mapstruct, serviceImpl, pagination for *
all, * の除外の例(単項) パーマリンク to "all, * の除外の例(単項)"
標準形式:
entity A
entity B
skipClient * except A
アノテーション形式:
entity A
@skipClient
entity B
use
キーワードの使用:
entity A
entity B
use mapstruct, serviceImpl, pagination for * except A
all, * の除外の例(二項) パーマリンク to "all, * の除外の例(二項)"
標準形式:
entity A
entity B
dto all with mapstruct except A
アノテーション形式:
entity A
@dto(mapstruct)
entity B
use
キーワードの使用:
entity A
entity B
use mapstruct, serviceImpl, pagination for all except A
カスタム値を持つオプション パーマリンク to "カスタム値を持つオプション"
entity A
entity B
microservice all with mySuperMS
混在する例 パーマリンク to "混在する例"
標準形式:
entity A
entity B
entity C
readOnly B, C
dto * with mapstruct except C
service * with serviceClass except C
search A with elasticsearch
アノテーション形式:
@dto(mapstruct)
@search(elastisearch)
@service(serviceClass)
entity A
@readOnly
@dto(mapstruct)
@service(serviceClass)
entity B
@readOnly
entity C
サービスについて パーマリンク to "サービスについて"
サービスの指定がない場合、リポジトリインタフェースを直接呼び出すリソースクラスが作成されます。これは デフォルトで最も単純なオプションです(Aを参照)。
service with serviceClass
(Bを参照)は、リポジトリインタフェースを呼び出すサービスクラスをリソースが呼び出すようにします。
service with serviceImpl
(Cを参照)は、リソースクラスによって使用されるサービスインタフェースを作成します。
このインタフェースは、リポジトリー・インタフェースを呼び出す具象クラスによって実装されます。
確実でない限りサービスを使用しないことは、最も簡単なオプションであり、CRUDに適しています。クラスでサービスを使用するのは 複数のリポジトリを使用するビジネスロジックのため、サービスクラスに最適です。JHipsterの開発者陣は 不要なインタフェースを好みません。しかし、気に入ったのであれば、implを使ってサービスを利用してください。
entity A
entity B
entity C
// Aに対応するサービスは無し
service B with serviceClass
service C with serviceImpl
マイクロサービス関連のオプション パーマリンク to "マイクロサービス関連のオプション"
JHipster v3では、マイクロサービスを作成できます。JDLでエンティティを生成するためのいくつかのオプションを指定できます。 マイクロサービスの名前と検索エンジンです。
マイクロサービスの名前(JHipsterアプリの名前)を指定する方法を次に示します。
entity A
entity B
entity C
microservice * with mysuperjhipsterapp except C
microservice C with myotherjhipsterapp
search * with elasticsearch except C
最初のオプションは、マイクロサービスにエンティティを処理させたいことをJHipsterに伝えるために使用され、2番目のオプションは エンティティの検索方法とエンティティを検索対象とするかどうかを指定します。
カスタム・アノテーション パーマリンク to "カスタム・アノテーション"
JDLでは、次のようなカスタムアノテーションが可能です。
@customAnnotation(customValue)
entity A
これの主なユースケースはBlueprintです。場合によっては、エンティティやフィールドのカスタムオプションが必要になることもあります。
通常のオプション(dto
, pagination
など)の場合、これらのオプションはCLIと同様にJSONで生成されます。
ただし、カスタムオプションの場合は、ダンプされたJSONのoptions
キーの下に生成されます。
使用可能なオプション パーマリンク to "使用可能なオプション"
あなたが探しているものではありませんか?アプリケーションのオプションをチェックしてください。
エンティティオプション パーマリンク to "エンティティオプション"
JDLでサポートされているエンティティオプションは次のとおりです。
JDLオプション名(エンティティ) | オプションタイプ | デフォルト値 | 指定可能な値 | コメント |
---|---|---|---|---|
skipClient | unary | false | これにより、クライアントコードの生成がスキップされます。 | |
skipServer | unary | false | これにより、サーバ・コードの生成がスキップされます | |
noFluentMethod | unary | false | 詳細はこのメモ を参照してください。 | |
filter | unary | false | 詳細はフィルタリングを参照してください。もしエンティティがフィルタされていても サービスがない場合は、'serviceClass'が使用されます。 | |
readOnly | unary | false | このオプションを追加すると、エンティティがreadOnlyになります。 詳細はこのリリースノート を参照してください。 | |
dto | binary | no | mapstruct, no | エンティティのDTOを作成するかどうか。エンティティにDTOがあってもサービスがない場合は、'serviceClass'が使用されます。 |
service | binary | no | serviceClass, serviceImpl, no | |
paginate | binary | no | pagination, infinite-scroll, no | アプリケーションがCassandraを使用している場合、ページ付けは禁止です |
search | binary | no | elasticsearch, no | アプリケーションでsearchEngineオプションを有効にする必要があります |
microservice | binary | custom value | マイクロサービスアプリケーション内で宣言されたすべてのエンティティに自動的に追加されます | |
angularSuffix | binary | カスタム値 | ||
clientRootFolder | binary | カスタム値 |
フィールドオプション パーマリンク to "フィールドオプション"
JDLでサポートされているフィールドオプションは以下の通りです。
JDLオプション名(フィールド) | デフォルト値 | 指定可能な値 | コメント |
---|---|---|---|
defaultValue | 未定義 | フィールドのデータ型に適合する任意の値、例えば "myDefaultValue" や 42 や true | データベーススキーマのカラムに固定のデフォルト値を定義し、クライアント側ではデフォルトの入力フォームとしてオプションを渡します(現在はAngularのみ) |
defaultValueComputed | 未定義 | データベースの関数を使用してカラムのデフォルト値を生成する、例えば "NOW(6)" | 指定された関数を使用してデータベースレベルでデフォルト値を生成します |
関連項目 パーマリンク to "関連項目"
アプリケーションのオプションは、ここにあります。