JHipsterドメイン言語 (JDL) - オプション
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
使用可能なオプションの完全なリストはこちらにあります。
操作方法
オプションには以下の2種類があります。
- 単項(オプション値なし)
- 二項(値付き)
エンティティにオプションを適用する方法は以下の3つです。
- オプション名を使う (
dto
,readOnly
など、例を参照) - アノテーションを使う
use XYZ
形式を使用
混在させると可読性が低下するため推奨されません。
構文
通常の形式は以下の通りです。
<option name> <option entity list>
または
<option name> <option entity list> with <option value>
または
<option name> <option entity list> with <option value> except <option excluded entity list>
または
<option name> <option entity list> except <option excluded entity list>
- 単項オプションの場合:
- オプション名とリストが必要です
- 除外エンティティは
except
キーワードを使用して指定可能です(詳細は下記参照)
- 二項オプションの場合:
with
キーワードの前にエンティティリストとオプション値を指定します- 除外エンティティは最後に
except
キーワードで指定します
アノテーションの場合:
@<option name>
entity <entity name>
または
@<option name>(<option value>)
- Javaと同様に、アノテーションは括弧内に値を取ることが可能
- オプションによって値が必須でない場合もあります
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オプションが有効になっているアプリケーションが 必要 |
例
各例には以下の3つの形式があります。
- 標準形式
- アノテーションベースの形式
- use形式(該当する場合)
基本の単項の例
標準形式:
entity A
readOnly A
アノテーション形式:
@readOnly
entity A
基本の二項の例
標準形式:
entity A
dto A with mapstruct
アノテーション形式:
@dto(mapstruct)
entity A
useキーワードの使用:
entity A
use mapstruct, serviceImpl, pagination for A
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, * の除外の例(単項)
標準形式:
entity A
entity B
skipClient * except A
アノテーション形式:
entity A
@skipClient
entity B
useキーワードの使用:
entity A
entity B
use mapstruct, serviceImpl, pagination for * except A