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