| SQL直実行 | dataSource.query() | 配列が戻り値 | 
| SQL直実行でバイド | dataSource.query("xxx = ?",[1]) | PHPと同じじゃ! | 
| SQLに近いが独自 | dataSource.createQueryBuilder(Entity).getMany() | |
| カウント | dataSource.getRepository(Trips).count({ where: { carId: carId } }) | 条件付けないならcount()あるが、一度に取得できるfindAndCountがよい | 
| where条件直記載 | dataSource.getRepository(PosRecords).count({where: {recorded: Raw((alias) => `${alias} between :from AND :to`,{from: '2022-10-1', to: '2022-11-1'})}}); | toとfromをパラメータ化 | 
https://www.npmjs.com/package/typeorm-model-generator
npx typeorm-model-generator
後はインタラクティブにMySQLを選べばOK!
findはrelationなどいろいろ設定できるにたいし、findByは条件のみ記載できる。そのためorderなどを指定する場合は必然的にfindを使うことになり、findOneBy以外はあまり使わないんではないか? Oneはその1レコードバージョンでAndCountだと件数も取れる
| in条件 | In(array) | 
https://zenn.dev/msksgm/articles/20211124-typeorm-many2many
自然に任せると勝手にテーブル推定してわけわからんので指定すること!StoreテーブルのPrefectureがこれ!
 @ManyToMany(() => Prefecture)
 @JoinTable({
     name: "store_prefecture", // table name for the junction table of this relation
     joinColumn: {
         name: "store_id",
         referencedColumnName: "id"
     },
     inverseJoinColumn: {
         name: "prefecture_id",
         referencedColumnName: "id"
     }
 })
テーブルあるのに作ろうとしてエラー。
create table test (`created` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(6)
create table test (`created` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(6)
 @UpdateDateColumn({ name: 'modified', type: 'datetime', width: 6, precision: 0})