Nestjs
1960 ワード
@Column('varchar', { name: 'password', length: 100, select: false })
entityでuserを表示すると、パスワードを削除する設定があります.このようにすると、まずfalseに削除されます.validateUserなどの特殊な場合は、選択して個別に挿入する必要があります.複雑なクエリーでは、通常クエリービルダーが使用されます.
query runnerでロードされたものだけがトランザクションにバインドされているので、簡単に考えている場合は、一般的にthisです.なんだか普通のクエリーばかりで、queryrunnerが持ってきたのはトランザクションばかりです.
queryRunner.manager.getRepository(エンティティ).findOne
同じように処理する
ほとんどの場合、diは常にすべてコンストラクション関数に配置され、直接属性としてインポートされる場合があります.この場合childserviceが継承して使用する場合、diが使用できない場合がありますが、この場合のみ使用することをお勧めします.
実際、クエリの最も基本的なのはfindプラスtake 1であり、take 1ではなくfindOne where idであり、ここでfindOneByIdを検索する方法がある.
sequelizeはincludeに条件を書くプロセスで、includeを削除してすぐに実行できるという利点があります.
paramまたはqueryは、マルチ+またはParseIntに変換してもよいし、この場合ParseIntPipeを使用してもよい
parameterを考えてみると、idを受け取ったときに1 2 3のような感じで検索します.Stringなので「1.2.3」ですがParseArrayPipeでArrayに分かれますカスタマイズするときはnewを貼って、カスタマイズしないときは直接書きます.ParseArrayPipe({item:type,separator:“,”})
dto:タイプ、検証、ドキュメントを指定できます.pickタイプを使用してください.
typeorm
ワークスペースではcreateがcreateです
workspace.saveは本物のsave
同時に約束する必要はありません.allSettingsで処理できるのはもっと速いです.
createQuery Builderとして作成
最初からjoinテーブルを設計するよりも、query builderを作成するときにjoinを設計して実行します.
シングルsyncにしたい人はそうすべきです.
モデルジェネレータを使用している場合は問題ありません
typeormにはバグがたくさんあるので、減らしたほうがいいです.
ちょっと不思議なことに、「w.url=:url」、{url:url}という処理方法は、「w.url=${url}」を直接使用しない理由はsql注入である
Get ManyまたはGetRawManyはRawがdb出力に近い感じがします
join: {
alias: 'workspace',
innerJoinAndSelect: {
channels: 'workspace.Channels',
},
},
//relations:[Channels]
低relationsセクションと同じthis.workSpacesRepository.createQueryBuilder('a').innerJoinAndSelect('workspace.Channels','challens').getOne();
「a」部分はalias部分と見なすことができる
typeormはjoinだけで簡単なjoinほとんど持ってこないので、and Selectを貼ってこそ、後ろのものを持ってくることができます.
innerjoin,leftjoin差異:2つのデータがあり、leftjoin:1つのデータの結合
outerjoin:何もない、join
Reference
この問題について(Nestjs), 我々は、より多くの情報をここで見つけました https://velog.io/@presentsong/Nestjsテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol