JHipster7をつかってみる
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
* 目次 [#v6964dfd]
#contents
* JHipsterをつかうときの心構え [#t94ff159]
たとえていうならば、ちょっと故障しているジャンクの中古品...
生成されるコードは99.9%大丈夫だが、0.1%を治す必要が...
テーブル名のつけ方や、サロゲートキーを使った設計にするな...
* JHipster7のインストールの注意点 [#c21d5157]
nodeのインストールはちょっと前のバージョンにする
JHIPSTERは、最新だからnodeも最新で動くというわけではない...
** 動作確認されたバージョンを使う [#j4822092]
nodeは16
jhipsterは7.9.3を使う
*** ちなみに(2022/11/07の最新を使おうとしたら)どうなるか...
最新のnodeのバージョンをつかおうとしたら、以下のエラーが...
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath '...
C:\Users\sion3\AppData\Roaming\npm\node_modules\generato...
*** この問題はIssueに上がっている [#r84ec873]
https://github.com/jhipster/generator-jhipster/issues/19627
* mvnwはgit for bashではなくcmdから動かす [#xfeb12ec]
なぜかwindowsでは、クラスが見つからないエラーとなってしま...
bash for windowsで動かすには、
mvnw.cmd
のほうをつかうと動く
* 生成したコードをSTSで読み込む [#i0b3ad7a]
まずはpom.xmlファイルをインポートさせる。
** pomファイルの [#ddfa3564]
以下の箇所でJavaのバージョン11が指定されているので、17に...
<java.version>11</java.version>
* 複合のユニークキー [#r0df8ab3]
JDLからエンティティ生成すると、oneToManyの指定を行うとliq...
** 手順 [#kd0f7138]
uniqueConstraintNameの値を複合キーとしたいカラムがあれば...
その他の修正が必要なのかわからないが以下のことをやってい...
*** 参考URL [#r23827bd]
https://stackoverflow.com/questions/36943627/how-to-add-u...
*** JPAの複合キーについての記述 [#xcc8c4cc]
https://stackoverflow.com/questions/3404853/multiple-uniq...
によれば、以下の文法が使えるようだ。ただ、Hibernateが対応...
@Entity
@Table(name="person", uniqueConstraints={
@UniqueConstraint(columnNames={"code", "uid"}),
@UniqueConstraint(columnNames={"anotherField", "uid"})
})
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;
}
** 考察 [#jf824ef1]
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" col...
*** 関連するJPAアノテーションをEntityに追加する [#i746bd71]
こんな感じ、
@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を修正したらどうなるかの実験 [#rbd8...
すでにDBのliquibaseが管理しているdatabasechangelogテーブ...
dropAllして、updateすればいけるのかどうか。。。
* 開発初期段階での手順 [#c141180e]
** DBの中身をバックアップとる [#c860f316]
スキーマを捨ててsrc/main/resources/config/liquibaseのxml...
残しておきたいデータがあればバックアップを取ればいいけど...
src\main\resources\config\liquibase\fake-data
のディレクトリのCSVを修正している
*** マスタテーブルの設定方法 [#j5439627]
データが決まってきたら、文字列の
fake-data
で検索すると修正箇所がでてくるので、fake-dataから、dataフ...
** スキーマーを丸ごと消す(dropする) [#b27fdb73]
./mvnw.cmd liquibase:dropAll -Dliquibase.username=root
これでpomファイルで定義してあるプロジェクトのスキーマがdr...
** 修正したxmlをもとにDBのテーブルを再構築 [#v8f45671]
./mvnw.cmd liquibase:update -Dliquibase.username=root
csvで定義したfake-dataも投入されています。
** 生成されるfake-dataとChangeLogの修正 [#j1d0414c]
外部キー制約に引っかからないように、fake-dataは、該当のカ...
自分で修正すると、今度はデータを取り込む順序を間違えると...
以下のファイルに記載してあるテーブルの作成順序を変えてみ...
src\main\resources\config\liquibase\master.xml
* pomファイルのJDBCの依存関係の追加 [#caabb142]
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でブレークポイントを立てる方法 [#naeaf1b9]
pomファイルでHikariConfig class loader
のあるところに、mariaDBの依存があることを追記する必要があ...
ApplicationWebXml.javaと同じフォルダにある、プロジェクト...
* フロント側でブレークポイントを立てる [#f8da2446]
chromeの開発モードでブレークポイントたてれるのがわかった...
以下のやり方はうまくいかなかった。
次にフロント側は
npm startとすると9000番のポートを使って動作し、そこでの...
vscodeで以下のURLを参考に指定をする
https://fintan.jp/page/462/
** sourceMapPathOverrides と webrootの変数の説明 [#a2fcf6...
https://qiita.com/beeeyan/items/9b0def365d64d11a4a1c
*** その他 [#l38a9335]
下記ページのChrome Debugger extention必須は、すでにVSCode...
https://create-react-app.dev/docs/setting-up-your-editor/...
* 注意点 [#x1ad76bd]
** .hipsterの下のエンティティでの注意点 [#i71a501a]
- idは自動でフィールド名に入るので入れない
- フィールド名はキャメル形式にする
終了行:
* 目次 [#v6964dfd]
#contents
* JHipsterをつかうときの心構え [#t94ff159]
たとえていうならば、ちょっと故障しているジャンクの中古品...
生成されるコードは99.9%大丈夫だが、0.1%を治す必要が...
テーブル名のつけ方や、サロゲートキーを使った設計にするな...
* JHipster7のインストールの注意点 [#c21d5157]
nodeのインストールはちょっと前のバージョンにする
JHIPSTERは、最新だからnodeも最新で動くというわけではない...
** 動作確認されたバージョンを使う [#j4822092]
nodeは16
jhipsterは7.9.3を使う
*** ちなみに(2022/11/07の最新を使おうとしたら)どうなるか...
最新のnodeのバージョンをつかおうとしたら、以下のエラーが...
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath '...
C:\Users\sion3\AppData\Roaming\npm\node_modules\generato...
*** この問題はIssueに上がっている [#r84ec873]
https://github.com/jhipster/generator-jhipster/issues/19627
* mvnwはgit for bashではなくcmdから動かす [#xfeb12ec]
なぜかwindowsでは、クラスが見つからないエラーとなってしま...
bash for windowsで動かすには、
mvnw.cmd
のほうをつかうと動く
* 生成したコードをSTSで読み込む [#i0b3ad7a]
まずはpom.xmlファイルをインポートさせる。
** pomファイルの [#ddfa3564]
以下の箇所でJavaのバージョン11が指定されているので、17に...
<java.version>11</java.version>
* 複合のユニークキー [#r0df8ab3]
JDLからエンティティ生成すると、oneToManyの指定を行うとliq...
** 手順 [#kd0f7138]
uniqueConstraintNameの値を複合キーとしたいカラムがあれば...
その他の修正が必要なのかわからないが以下のことをやってい...
*** 参考URL [#r23827bd]
https://stackoverflow.com/questions/36943627/how-to-add-u...
*** JPAの複合キーについての記述 [#xcc8c4cc]
https://stackoverflow.com/questions/3404853/multiple-uniq...
によれば、以下の文法が使えるようだ。ただ、Hibernateが対応...
@Entity
@Table(name="person", uniqueConstraints={
@UniqueConstraint(columnNames={"code", "uid"}),
@UniqueConstraint(columnNames={"anotherField", "uid"})
})
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;
}
** 考察 [#jf824ef1]
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" col...
*** 関連するJPAアノテーションをEntityに追加する [#i746bd71]
こんな感じ、
@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を修正したらどうなるかの実験 [#rbd8...
すでにDBのliquibaseが管理しているdatabasechangelogテーブ...
dropAllして、updateすればいけるのかどうか。。。
* 開発初期段階での手順 [#c141180e]
** DBの中身をバックアップとる [#c860f316]
スキーマを捨ててsrc/main/resources/config/liquibaseのxml...
残しておきたいデータがあればバックアップを取ればいいけど...
src\main\resources\config\liquibase\fake-data
のディレクトリのCSVを修正している
*** マスタテーブルの設定方法 [#j5439627]
データが決まってきたら、文字列の
fake-data
で検索すると修正箇所がでてくるので、fake-dataから、dataフ...
** スキーマーを丸ごと消す(dropする) [#b27fdb73]
./mvnw.cmd liquibase:dropAll -Dliquibase.username=root
これでpomファイルで定義してあるプロジェクトのスキーマがdr...
** 修正したxmlをもとにDBのテーブルを再構築 [#v8f45671]
./mvnw.cmd liquibase:update -Dliquibase.username=root
csvで定義したfake-dataも投入されています。
** 生成されるfake-dataとChangeLogの修正 [#j1d0414c]
外部キー制約に引っかからないように、fake-dataは、該当のカ...
自分で修正すると、今度はデータを取り込む順序を間違えると...
以下のファイルに記載してあるテーブルの作成順序を変えてみ...
src\main\resources\config\liquibase\master.xml
* pomファイルのJDBCの依存関係の追加 [#caabb142]
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でブレークポイントを立てる方法 [#naeaf1b9]
pomファイルでHikariConfig class loader
のあるところに、mariaDBの依存があることを追記する必要があ...
ApplicationWebXml.javaと同じフォルダにある、プロジェクト...
* フロント側でブレークポイントを立てる [#f8da2446]
chromeの開発モードでブレークポイントたてれるのがわかった...
以下のやり方はうまくいかなかった。
次にフロント側は
npm startとすると9000番のポートを使って動作し、そこでの...
vscodeで以下のURLを参考に指定をする
https://fintan.jp/page/462/
** sourceMapPathOverrides と webrootの変数の説明 [#a2fcf6...
https://qiita.com/beeeyan/items/9b0def365d64d11a4a1c
*** その他 [#l38a9335]
下記ページのChrome Debugger extention必須は、すでにVSCode...
https://create-react-app.dev/docs/setting-up-your-editor/...
* 注意点 [#x1ad76bd]
** .hipsterの下のエンティティでの注意点 [#i71a501a]
- idは自動でフィールド名に入るので入れない
- フィールド名はキャメル形式にする
ページ名: