Repository API

manager

このリポジトリで使用されるEntityを操作するオブジェクト。

const manager = repository.manager;

metadata

このリポジトリによって管理されるエンティティのメタデータ

const metadata = repository.metadata;

queryRunner

EntityManagerが使用するクエリランナー。 EntityManagerのトランザクションインスタンスでのみ使用。

const queryRunner = repository.queryRunner;

target

このリポジトリによって管理されるターゲットとなるエンティティクラス。エンティティマネージャのトランザクションインスタンスでのみ使用される。

const target = repository.target;

createQueryBuilder

SQLクエリを構築するために使用するクエリビルダーを作成する。

const users = await repository
    .createQueryBuilder("user")
    .where("user.name = :name", { name: "John" })
    .getMany();

hasId

指定されたエンティティのプライマリ列プロパティが定義されているかどうかを確認する。

if (repository.hasId(user)) {
    // ... do something
 }

getId

指定されたエンティティのプライマリのプロパティの値を取得する。エンティティに複合主キーがある場合、返される値は主列の名前と値を持つオブジェクトになる。

const userId = repository.getId(user); // userId === 1

create

ユーザーの新しいインスタンスを作成する。オプションで、新しく作成されたユーザーオブジェクトに書き込まれるユーザープロパティを持つオブジェクトリテラルを受け入れる。

const user = repository.create(); // same as const user = new User();
const user = repository.create({
    id: 1,
    firstName: "Timber",
    lastName: "Saw"
}); // same as const user = new User(); user.firstName = "Timber"; user.lastName = "Saw";

merge

複数のエンティティを単一のエンティティにマージする。

const user = new User();
repository.merge(user, { firstName: "Timber" }, { lastName: "Saw" }); // same as user.firstName = "Timber"; user.lastName = "Saw";

preload

指定されたプレーンなJavaScriptオブジェクトから新しいエンティティを作成する。エンティティがデータベースにすでに存在する場合、それ(およびそれに関連するすべて)をロードし、すべての値を特定のオブジェクトの新しい値で置き換え、新しいエンティティを返す。新しいエンティティは、実際には、新しいオブジェクトからすべてのプロパティが置き換えられた、データベースからロードされたエンティティ。

const partialUser = {
    id: 1,
    firstName: "Rizzrak",
    profile: {
        id: 1
    }
};
const user = await repository.preload(partialUser);
// user will contain all missing data from partialUser with partialUser property values:
// { id: 1, firstName: "Rizzrak", lastName: "Saw", profile: { id: 1, ... } }

save

指定されたエンティティまたはエンティティの配列を保存する。エンティティがすでにデータベースに存在する場合、更新される。エンティティがデータベースに存在しない場合、挿入される。指定されたすべてのエンティティを単一のトランザクションで保存する。未定義のプロパティはすべてスキップされるため、部分更新もサポートする。保存されたエンティティを返す。

await repository.save(user);
await repository.save([
    category1,
    category2,
    category3
]);

remove

指定されたエンティティまたはエンティティの配列を削除する。単一のトランザクションで指定されたすべてのエンティティを削除する(エンティティの場合、マネージャーはトランザクションではない)。削除されたエンティティを返す。

await repository.remove(user);
await repository.remove([
    category1,
    category2,
    category3
]);

insert

新しいエンティティまたはエンティティの配列を挿入する。

await repository.insert({
    firstName: "Timber",
    lastName: "Timber"
});


await manager.insert(User, [{ 
    firstName: "Foo", 
    lastName: "Bar" 
}, { 
    firstName: "Rizz", 
    lastName: "Rak" 
}]);

update

指定された更新オプションまたはエンティティIDによってエンティティを部分的に更新。

await repository.update({ firstName: "Timber" }, { firstName: "Rizzrak" });
// executes UPDATE user SET firstName = Rizzrak WHERE firstName = Timber

await repository.update(1, { firstName: "Rizzrak" });
// executes UPDATE user SET firstName = Rizzrak WHERE id = 1

delete

エンティティID、ID、または指定された条件でエンティティを削除する。

await repository.delete(1);
await repository.delete([1, 2, 3]);
await repository.delete({ firstName: "Timber" });

count

指定されたオプションに一致するエンティティをカウントする。ページネーションに便利。

const count = await repository.count({firstName: "Timber"};

increment

与えられたオプションに一致するエンティティの提供された値によっていくつかの列を増やす。

await manager.increment(User、{firstName: "Timber"}"age"3;

decrement

指定されたオプションに一致する提供された値によって一部の列をデクリメントする。

await manager.decrement(User、{firstName: "Timber"}"age"3;

find

指定されたオプションに一致するエンティティを検索する。

const timbers = await repository.find({firstName: "Timber"};

findAndCount

指定された検索オプションに一致するエンティティを検索する。また、指定された条件に一致するすべてのエンティティをカウントするが、ページネーション設定を無視する(スキップしてテイクオプション)。

const [timbers, timbersCount] = await repository.findAndCount({ firstName: "Timber" });

findByIds

IDで複数のエンティティを検索する。

const users = await repository.findByIds([123];

findOne

一部のIDまたは検索オプションに一致する最初のエンティティを検索する。

const user = await repository.findOne(1;
const timber = await repository.findOne({firstName: "Timber"};

findOneOrFail

一部のIDまたは検索オプションに一致する最初のエンティティを検索する。 一致するものがない場合、返されたプロミスを拒否する。

const user = await repository.findOneOrFail(1;
const timber = await repository.findOneOrFail({firstName: "Timber"};

query

生のSQLクエリを実行する。

const rawData = await repository.query( `SELECT * FROM USERS`;

clear

指定されたテーブルからすべてのデータをクリアする(切り捨て/削除する)。

await repository.clear();