Wang Liang
Wang Liang

Reputation: 4444

typeorm get repository from name

To create REST API for any entity. Can I use table name instead of Entity for queryBuilder?

const repository = getRepository("Table_Name"); // instead of Entity, I want use string `Any Table name`.
repository.createQueryBuilder( ...  )
    .leftJoin(['TableA', 'TableB'])
    .orderBy("TableA.name")
    .offset(5)
    .limit(10);

Upvotes: 2

Views: 2751

Answers (1)

Eranga Heshan
Eranga Heshan

Reputation: 5814

I think you are looking to find the correct entity name given that you already know the name of the database table.

Assuming you have only one database to connect to, you can do something like this:

const tableName = "Table_Name";
const entityMetadata = getConnection().entityMetadatas.find((metadata) => metadata.tableName === tableName);
const repository = getRepository(entityMetadata.name);

For your TableA and TableB, I guess you can follow the same logic.

Upvotes: 2

Related Questions