JHipsterドメイン言語(JDL) - アプリケーション
構文
アプリケーション宣言は、次のように行われます。
application {
config {
<アプリケーション・オプション名> <アプリケーション・オプション値>
}
[entities <アプリケーション・エンティティのリスト>]
[<オプション>]
}
- アプリケーションの設定キー/値は
config
の下に指定されます(application
の中にある必要があります)。 - 0、1、または任意のアプリケーション・オプションを指定できます(有効な場合)。
- アプリケーション内で生成されるエンティティは、
entities
のリストにします。これは、アプリケーションでエンティティを生成するための 推奨される方法です。- これは省略できますが、その場合アプリケーション内でエンティティを生成するには、以下を行う必要があります。
- アプリケーション内の別のJDLファイルから生成
- またはCLIを使用
- これは省略できますが、その場合アプリケーション内でエンティティを生成するには、以下を行う必要があります。
entities
キーワードはオプションです。省略できますが、JDLファイル内のすべてのエンティティが アプリケーション内で生成されることになります。- アプリケーションには通常のオプション(
dto
またはservice
)を持つことができます。詳細については次のセクションで説明します。
アプリケーションのオプション
オプションの宣言(dto
, service
, skipServer
など)はJDLのアプリケーションでサポートされていますが、いくつかのルールがあります。
たとえば、次のJDLファイルがあるとします。
application {
config {
baseName app1
}
entities A, B, C
dto * with mapstruct
}
application {
config {
baseName app2
}
entities C, D
paginate * with pagination except D
}
application {
config {
baseName app3
}
entities * except A, B, C, D, F
service * with serviceClass
}
entity A
entity B
entity C
entity D
entity E
entity F
paginate * with infinite-scroll
このサンプルでは、いくつかのことがわかります。
- JDLファイルには、
A, B, C, D, E, F
の6つの宣言されたエンティティがあります。 - 3つのアプリケーション
app1, app2, app3
があります。app1
はA, B, C
を使用します。app2
はC, D
を使用します。app3
はE
を使用します(* except A, B, C, D, F
により)
- 各アプリケーションではオプションとグローバルな オプションを宣言しています。
app1
はdto
宣言をA, B and C
に対して行います。app2
はpaginate
宣言をC
に対して行います(除外があるため)。app3
はservice
をE
に対して行います。- グローバルで
pagination
を(全てのエンティティに対して)宣言します。
どのようにファイルが生成されるかを以下に示します。
app1
A
:infinite-scroll の paginate
(グローバルオプションはローカルオプションを上書きしません)とdto mapstruct
を使用B
: も同様のオプションを使用C
: も同様のオプションを使用
app2
:C
:pagination の paginate
(ローカルが優先のためinfinite-scroll
は無し)D
: それまでのオプションがD
を含めていないためinfinite-scroll の paginate
を使用
app3
:E
:infinite-scroll の paginate
とserviceClass の service
この例は、シャドーイングの原理を示しています。グローバルオプションはサポートされており、アプリケーションでオプションが宣言されていない限り、 宣言されたすべてのアプリケーションで使用されます。
また、次のスニペットはapp3
の前のサンプルから引用したものです。
entities * except A, B, C, D, F
service * with serviceClass
基本としてapp3
はE
のみを使用し、アプリケーションのエンティティはservice
オプションを使用するという意味です。
これはE
のみであり、AからF
ではありません。
最後に、F
エンティティどのアプリケーションにも存在せず、そのため、このエンティティは生成されません。
注:現時点では、すべての標準オプションがサポートされています。
例
基本の例
application {
config {
baseName exampleApp
applicationType gateway
}
}