JHipster7をつかってみる
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
Markdown
]
開始行:
<!-- markdown -->
# 目次
[TOC]
# JHipsterをつかうときの心構え
たとえていうならば、ちょっと故障しているジャンクの中古品...
生成されるコードは99.9%大丈夫だが、0.1%を治す必要が...
テーブル名のつけ方や、サロゲートキーを使った設計にするな...
# JHipster7のインストールの注意点
nodeのインストールはちょっと前のバージョンにする
JHIPSTERは、最新だからnodeも最新で動くというわけではない...
## 動作確認されたバージョンを使う
nodeは16
jhipsterは7.9.3を使う
### ちなみに(2022/11/07の最新を使おうとしたら)どうなるか...
最新のnodeのバージョンをつかおうとしたら、以下のエラーが...
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpat...
C:\Users\sion3\AppData\Roaming\npm\node_modules\gener...
### この問題はIssueに上がっている
https://github.com/jhipster/generator-jhipster/issues/19627
# mvnwはgit for bashではなくcmdから動かす
なぜかwindowsでは、クラスが見つからないエラーとなってしま...
bash for windowsで動かすには、
mvnw.cmd
のほうをつかうと動く
# 生成したコードをSTSで読み込む
まずはpom.xmlファイルをインポートさせる。
## pomファイルの
以下の箇所でJavaのバージョン11が指定されているので、17に...
<java.version>11</java.version>
# 複合のユニークキー
JDLからエンティティ生成すると、oneToManyの指定を行うとliq...
## 手順
uniqueConstraintNameの値を複合キーとしたいカラムがあれば...
その他の修正が必要なのかわからないが以下のことをやってい...
### 参考URL
https://stackoverflow.com/questions/36943627/how-to-add-u...
### JPAの複合キーについての記述
https://stackoverflow.com/questions/3404853/multiple-uniq...
によれば、以下の文法が使えるようだ。ただ、Hibernateが対応...
@Entity
@Table(name="person", uniqueConstraints={
@UniqueConstraint(columnNames={"code", "uid"}),
@UniqueConstraint(columnNames={"anotherField", "ui...
})
public class Person {
// Unique on code and uid
public String code;
public String uid;
// Unique on username
public String username;
public String name;
public String email;
}
## 考察
1フィールドのユニーク制約は、フィールドレベルだけれども、...
JDLの書式は、
https://www.jhipster.tech/jdl/entities-fields
によれば、
[<entity javadoc>]
[<entity annotation>*]
entity <entity name> [(<table name>)] {
[<field javadoc>]
[<field annotation>*]
<field name> <field type> [<validation>*]
}
なので、もしJDLに記述できるとすれば、
[<entity annotation>*]
の箇所になると思うが、将来的な実装されるといいな、という...
## JHipsterで複合ユニークキーを実現するにはどうするのかの...
### src/main/resources/config/liquibase のChangeLogの修正
例えば、こんな感じにcolumnNamesにカンマ区切りを入れる
<addUniqueConstraint tableName="airplane_model_seat" ...
### 関連するJPAアノテーションをEntityに追加する
こんな感じ、
@Table(name = "table_name",
uniqueConstraints = {@UniqueConstraint(columnNames...
複合キーになりそうな定義を、ChangeLogの
ux_
の文字列で検索しておいて、その検索結果をみながら、
下記の文字列
@Table(name =
で検索して、修正をしていくといいかもしれない。
### フィールド値が一意であることの指定をJPAに対して確認する
@Column(unique=true)
String username;
### フィールド値が一意であることの指定をLiquibaseのChange...
<column name="username" type="varchar(255)">
<constraints nullable="true" unique="true" />
</column>
# liquibaseのChangeLogを修正したらどうなるかの実験
すでにDBのliquibaseが管理しているdatabasechangelogテーブ...
dropAllして、updateすればいけるのかどうか。。。
# 開発初期段階での手順
## DBの中身をバックアップとる
スキーマを捨ててsrc/main/resources/config/liquibaseのxml...
残しておきたいデータがあればバックアップを取ればいいけど...
src\main\resources\config\liquibase\fake-data
のディレクトリのCSVを修正している
### マスタテーブルの設定方法
データが決まってきたら、文字列の
fake-data
で検索すると修正箇所がでてくるので、fake-dataから、dataフ...
## スキーマーを丸ごと消す(dropする)
./mvnw.cmd liquibase:dropAll -Dliquibase.username=root
これでpomファイルで定義してあるプロジェクトのスキーマがdr...
## 修正したxmlをもとにDBのテーブルを再構築
./mvnw.cmd liquibase:update -Dliquibase.username=root
csvで定義したfake-dataも投入されています。
## 生成されるfake-dataとChangeLogの修正
外部キー制約に引っかからないように、fake-dataは、該当のカ...
自分で修正すると、今度はデータを取り込む順序を間違えると...
以下のファイルに記載してあるテーブルの作成順序を変えてみ...
src\main\resources\config\liquibase\master.xml
# pomファイルのJDBCの依存関係の追加
HikariCPが依存しているJDBCのdependencyが自動で追加されて...
以下を参考にして入れてあげる必要があった。
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</dependency>
# JavaのIDEでブレークポイントを立てる方法
pomファイルでHikariConfig class loader
のあるところに、mariaDBの依存があることを追記する必要があ...
ApplicationWebXml.javaと同じフォルダにある、プロジェクト...
# フロント側でブレークポイントを立てる
chromeの開発モードでブレークポイントたてれるのがわかった...
以下のやり方はうまくいかなかった。
次にフロント側は
npm startとすると9000番のポートを使って動作し、そこで...
vscodeで以下のURLを参考に指定をする
https://fintan.jp/page/462/
## sourceMapPathOverrides と webrootの変数の説明
https://qiita.com/beeeyan/items/9b0def365d64d11a4a1c
### その他
下記ページのChrome Debugger extention必須は、すでにVSCode...
https://create-react-app.dev/docs/setting-up-your-editor/...
# 注意点
## .hipsterの下のエンティティでの注意点
- idは自動でフィールド名に入るので入れない
- フィールド名はキャメル形式にする
終了行:
<!-- markdown -->
# 目次
[TOC]
# JHipsterをつかうときの心構え
たとえていうならば、ちょっと故障しているジャンクの中古品...
生成されるコードは99.9%大丈夫だが、0.1%を治す必要が...
テーブル名のつけ方や、サロゲートキーを使った設計にするな...
# JHipster7のインストールの注意点
nodeのインストールはちょっと前のバージョンにする
JHIPSTERは、最新だからnodeも最新で動くというわけではない...
## 動作確認されたバージョンを使う
nodeは16
jhipsterは7.9.3を使う
### ちなみに(2022/11/07の最新を使おうとしたら)どうなるか...
最新のnodeのバージョンをつかおうとしたら、以下のエラーが...
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpat...
C:\Users\sion3\AppData\Roaming\npm\node_modules\gener...
### この問題はIssueに上がっている
https://github.com/jhipster/generator-jhipster/issues/19627
# mvnwはgit for bashではなくcmdから動かす
なぜかwindowsでは、クラスが見つからないエラーとなってしま...
bash for windowsで動かすには、
mvnw.cmd
のほうをつかうと動く
# 生成したコードをSTSで読み込む
まずはpom.xmlファイルをインポートさせる。
## pomファイルの
以下の箇所でJavaのバージョン11が指定されているので、17に...
<java.version>11</java.version>
# 複合のユニークキー
JDLからエンティティ生成すると、oneToManyの指定を行うとliq...
## 手順
uniqueConstraintNameの値を複合キーとしたいカラムがあれば...
その他の修正が必要なのかわからないが以下のことをやってい...
### 参考URL
https://stackoverflow.com/questions/36943627/how-to-add-u...
### JPAの複合キーについての記述
https://stackoverflow.com/questions/3404853/multiple-uniq...
によれば、以下の文法が使えるようだ。ただ、Hibernateが対応...
@Entity
@Table(name="person", uniqueConstraints={
@UniqueConstraint(columnNames={"code", "uid"}),
@UniqueConstraint(columnNames={"anotherField", "ui...
})
public class Person {
// Unique on code and uid
public String code;
public String uid;
// Unique on username
public String username;
public String name;
public String email;
}
## 考察
1フィールドのユニーク制約は、フィールドレベルだけれども、...
JDLの書式は、
https://www.jhipster.tech/jdl/entities-fields
によれば、
[<entity javadoc>]
[<entity annotation>*]
entity <entity name> [(<table name>)] {
[<field javadoc>]
[<field annotation>*]
<field name> <field type> [<validation>*]
}
なので、もしJDLに記述できるとすれば、
[<entity annotation>*]
の箇所になると思うが、将来的な実装されるといいな、という...
## JHipsterで複合ユニークキーを実現するにはどうするのかの...
### src/main/resources/config/liquibase のChangeLogの修正
例えば、こんな感じにcolumnNamesにカンマ区切りを入れる
<addUniqueConstraint tableName="airplane_model_seat" ...
### 関連するJPAアノテーションをEntityに追加する
こんな感じ、
@Table(name = "table_name",
uniqueConstraints = {@UniqueConstraint(columnNames...
複合キーになりそうな定義を、ChangeLogの
ux_
の文字列で検索しておいて、その検索結果をみながら、
下記の文字列
@Table(name =
で検索して、修正をしていくといいかもしれない。
### フィールド値が一意であることの指定をJPAに対して確認する
@Column(unique=true)
String username;
### フィールド値が一意であることの指定をLiquibaseのChange...
<column name="username" type="varchar(255)">
<constraints nullable="true" unique="true" />
</column>
# liquibaseのChangeLogを修正したらどうなるかの実験
すでにDBのliquibaseが管理しているdatabasechangelogテーブ...
dropAllして、updateすればいけるのかどうか。。。
# 開発初期段階での手順
## DBの中身をバックアップとる
スキーマを捨ててsrc/main/resources/config/liquibaseのxml...
残しておきたいデータがあればバックアップを取ればいいけど...
src\main\resources\config\liquibase\fake-data
のディレクトリのCSVを修正している
### マスタテーブルの設定方法
データが決まってきたら、文字列の
fake-data
で検索すると修正箇所がでてくるので、fake-dataから、dataフ...
## スキーマーを丸ごと消す(dropする)
./mvnw.cmd liquibase:dropAll -Dliquibase.username=root
これでpomファイルで定義してあるプロジェクトのスキーマがdr...
## 修正したxmlをもとにDBのテーブルを再構築
./mvnw.cmd liquibase:update -Dliquibase.username=root
csvで定義したfake-dataも投入されています。
## 生成されるfake-dataとChangeLogの修正
外部キー制約に引っかからないように、fake-dataは、該当のカ...
自分で修正すると、今度はデータを取り込む順序を間違えると...
以下のファイルに記載してあるテーブルの作成順序を変えてみ...
src\main\resources\config\liquibase\master.xml
# pomファイルのJDBCの依存関係の追加
HikariCPが依存しているJDBCのdependencyが自動で追加されて...
以下を参考にして入れてあげる必要があった。
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</dependency>
# JavaのIDEでブレークポイントを立てる方法
pomファイルでHikariConfig class loader
のあるところに、mariaDBの依存があることを追記する必要があ...
ApplicationWebXml.javaと同じフォルダにある、プロジェクト...
# フロント側でブレークポイントを立てる
chromeの開発モードでブレークポイントたてれるのがわかった...
以下のやり方はうまくいかなかった。
次にフロント側は
npm startとすると9000番のポートを使って動作し、そこで...
vscodeで以下のURLを参考に指定をする
https://fintan.jp/page/462/
## sourceMapPathOverrides と webrootの変数の説明
https://qiita.com/beeeyan/items/9b0def365d64d11a4a1c
### その他
下記ページのChrome Debugger extention必須は、すでにVSCode...
https://create-react-app.dev/docs/setting-up-your-editor/...
# 注意点
## .hipsterの下のエンティティでの注意点
- idは自動でフィールド名に入るので入れない
- フィールド名はキャメル形式にする
ページ名: