参考動画
エンティティの生成
エンティティの自動生成について、
以下は、動画のテキストに書かれている説明のgoogle翻訳。
JHipsterはいろんなものを生成してくれるようです。
作成するエンティティごとに、次のものが必要になります。
・データベーステーブル。
・Liquibaseチェンジセット。
・JPAエンティティクラス。
・SpringDataJpaRepositoryインターフェース。
・SpringMVCRestControllerクラス。
・Angularリストコンポーネント、編集コンポーネント、サービス。そして
・コンポーネントごとにいくつかのHTMLページ。
また、すべてが機能することを確認するための統合テストと、高速に実行されることを確認するためのパフォーマンステストが必要です。理想的な世界では、Angularコードの単体テストと統合テストもあります。
幸いなことに、JHipsterは、統合テストやパフォーマンステストを含め、このすべてのコードを生成できます。リレーションシップを持つエンティティがある場合は、それらをサポートするために必要なスキーマ(外部キーを使用)と、それらを管理するためのTypeScriptおよびHTMLコードが作成されます。特定のフィールドを要求するように検証を設定し、それらの長さを制御することもできます。
ツールは、コマンドラインツールの “entity” sub-generator と、ブラウザベースのJDL-Studioの2つがある。
JDL-Studioは、JHipster Domain Language(JDL)を使用してドメインモデルを定義するためのブラウザベースのツールです。
とのこと。JDLという、JHipster 独自のモデル定義言語があるようです。
JDL-Studioを使うと、エンティティのダイアグラムを表示することができます。
ちなみに、
今回のサンプルでは、下記のblog.jdl
を使います。JDL-Studioに下記コードをコピペで張り付けたら、上記の図になります。
entity Blog {
name String required minlength(3)
handle String required minlength(2)
}
entity Post {
title String required
content TextBlob required
date Instant required
}
entity Tag {
name String required minlength(2)
}
relationship ManyToOne {
Blog{user(login)} to User
Post{blog(name)} to Blog
}
relationship ManyToMany {
Post{tag(name)} to Tag{post}
}
paginate Post, Tag with infinite-scroll
次のコマンドを実行すると、エンティティ、テスト、UIが自動生成されます。
jhipster jdl blog.jdl
途中で、src/main/webapp/i18n/en/global.json
を上書きするように聞かれます。
__a__を入力し、このファイルも他のファイルも、すべて上書きします。
(「1分も掛からず」なんて動画では言っていましたが、自分の環境ではもう少しかかりました)
生成したエンティティ(と偽データ)を見てみる。
実行が終了したら、
mvnw
でアプリケーションを再起動します。
メニューのEntityを見ると、生成されたエンティティ(Blog, Post, Tag)が表示されます。
また、それぞれのエンティティを見てみると、もうすでに勝手にデータが入っています(!)
これらのデータは、偽データを作成するfaker.jsを使用して作成しているとのことです。
これは便利ですね。
各編集画面
ちなみにViewボタン、Editボタン、Deleteボタンを押したら、こんな画面が表示されます。
View画面
Edit画面
Delete
「本当に消していいですか?」的な確認のポップアップがでます。
今回のコード