JHipsterドメイン言語 - エンティティとフィールド
構文
エンティティの宣言は次のように行われます。
[<entity javadoc>]
[<entity annotation>*]
entity <entity name> [(<table name>)] {
[<field javadoc>]
[<field annotation>*]
<field name> <field type> [<validation>*]
}
<entity name>エンティティの名前<field name>エンティティのフィールドの名前<field type>JHipsterがサポートするフィールドの型- オプションとして以下があります。
<entity javadoc>エンティティのドキュメント<entity annotation>エンティティのオプション(使用可能なオプションの完全なリストについては、オプションエンティティを参照)<table name>データベーステーブル名(エンティティ名から自動的に計算された名前とは別のものを指定する場合)<field javadoc>フィールドのドキュメント<field annotation>フィールドのオプション(使用可能なオプションの完全なリストについては、[オプションフィールド][]を参照)<validation>フィールドの検証
例
基本の例
entity A
これは以下と同じです。
entity A(a) {}
前者は、"body"(フィールドの中括弧)とテーブル名を指定しない、より単純な形式です。
カスタム・テーブル名
カスタムテーブル名の指定もできます。
entity A(my_super_entity)
フィールド
entity A {
name String required
age Integer
}
フィールド検証
entity A {
name String required
age Integer min(42) max(42)
}
Blob宣言
JHipsterは、イメージ・タイプまたは任意のバイナリ・タイプのいずれかを選択できる優れた選択肢を提供します。JDLでも同じことができます。 エディタを使用してカスタムタイプ(DataTypeを参照)を作成し、次の規則に従って名前を付けます。
- "any"バイナリ型のフィールドを作成するための
AnyBlobまたはBlob - イメージのフィールドを作成するための
ImageBlob - CLOB(ロングテキスト)のフィールドを作成するための
TextBlob
また、DataTypeは必要な数だけ作成できます。
正規表現
これは特別な検証で(String型でのみ使用可能)、構文は次のとおりです。
entity A {
name String pattern(/^[A-Z][a-z]+\d$/)
}
内訳を見てみましょう。
patternは正規表現の検証を宣言するためのキーワードです(通常の括弧付き)。/.../パターンは2つのスラッシュの内側で宣言されます。\アンチスラッシュはエスケープする必要はありません。
コメント
JDLでは、エンティティとフィールドに対してコメントを付けることができ、ドキュメント(バックエンドのJavadocまたはJSDoc )を生成します。
/**
* This is a comment
* about a class
* @author Someone
*/
entity A {
/**
* This comment will also be used!
* @type...
*/
name String
age Integer // this is yet another comment
}
これらのコメントは、後でJHipsterによってJavadocコメントとして追加されます。JDLには独自のコメントがあります。
- // 無視されるコメント
- /** 無視されるコメントではありません */
したがって、//で始まるものはすべてJDLの内部コメントと見なされ、Javadocとしてカウントされません。
#で始まるJDL Studioディレクティブは、構文解析中に無視されることに注意してください。
別の形式のコメントは、次のコメントです。
entity A {
name String /** 凄いフィールド */
count Integer /** その他の凄いフィールド */
}
ここで、Aの名前には「凄いフィールド」というコメントが付けられ、Bの名前には「その他の凄いフィールド」というコメントが付けられます。
また、カンマは必須ではありませんが、コード内でミスをしないようにカンマを使用することをお勧めします。 カンマとその後のコメントを混在させたい場合は、注意してください!
entity A {
name String, /** 私のコメント */
count Integer
}
Aのnameにはコメントが付きません。countの方にコメントが付くからです。
フィールドタイプと検証
各フィールド・タイプには独自の検証リストがあります。JDLでサポートされているタイプは次のとおりです。
| JDLタイプ | 検証 |
|---|---|
| String | required, minlength, maxlength, pattern, unique |
| Integer | required, min, max, unique |
| Long | required, min, max, unique |
| BigDecimal | required, min, max, unique |
| Float | required, min, max, unique |
| Double | required, min, max, unique |
| Enum | required, unique |
| Boolean | required, unique |
| LocalDate | required, unique |
| ZonedDateTime | required, unique |
| Instant | required, unique |
| LocalTime | 必須、一意 |
| Duration | required, unique |
| UUID | required, unique |
| Blob | required, minbytes, maxbytes, unique |
| AnyBlob | required, minbytes, maxbytes, unique |
| ImageBlob | required, minbytes, maxbytes, unique |
| TextBlob | required, unique |