JHipsterドメイン言語(JDL) - エンティティ パーマリンク to " JHipsterドメイン言語(JDL) - エンティティ"

概要 パーマリンク to "概要"

  1. 構文
    1. 基本の例
    2. カスタム・テーブル名
    3. フィールド
    4. フィールド検証
    5. Blob宣言
    6. 正規表現
    7. コメント
  2. フィールドタイプと検証

構文 パーマリンク to "構文"

エンティティの宣言は次のように行われます。

[<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> フィールドの検証

パーマリンク to "例"

基本の例 パーマリンク to "基本の例"

entity A

これは以下と同じです。

entity A(a) {}

前者は、”body”(フィールドの中括弧)とテーブル名を指定しない、より単純な形式です。


カスタム・テーブル名 パーマリンク to "カスタム・テーブル名"

カスタムテーブル名の指定もできます。

 entity A(my_super_entity)

フィールド パーマリンク to "フィールド"

entity A {
  name String required
  age Integer
}

フィールド検証 パーマリンク to "フィールド検証"

entity A {
  name String required
  age Integer min(42) max(42)
}

Blob宣言 パーマリンク to "Blob宣言"

JHipsterは、イメージ・タイプまたは任意のバイナリ・タイプのいずれかを選択できる優れた選択肢を提供します。JDLでも同じことができます。 エディタを使用してカスタムタイプ(DataTypeを参照)を作成し、次の規則に従って名前を付けます。

  • “any”バイナリ型のフィールドを作成するためのAnyBlobまたはBlob
  • イメージのフィールドを作成するためのImageBlob
  • CLOB(ロングテキスト)のフィールドを作成するためのTextBlob

また、DataTypeは必要な数だけ作成できます。


正規表現 パーマリンク to "正規表現"

これは特別な検証で(String型でのみ使用可能)、構文は次のとおりです。

entity A {
  name String pattern(/^[A-Z][a-z]+\d$/)
}

内訳を見てみましょう。

  • patternは正規表現の検証を宣言するためのキーワードです(通常の括弧付き)。
  • /.../ パターンは2つのスラッシュの内側で宣言されます。
  • \ アンチスラッシュはエスケープする必要はありません。

コメント パーマリンク to "コメント"

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の方にコメントが付くからです。


フィールドタイプと検証 パーマリンク to "フィールドタイプと検証"

各フィールド・タイプには独自の検証リストがあります。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
Duration required, unique
UUID required, unique
Blob required, minbytes, maxbytes, unique
AnyBlob required, minbytes, maxbytes, unique
ImageBlob required, minbytes, maxbytes, unique
TextBlob required, unique