Zum Hauptinhalt springen

DataSource-API

Inoffizielle Beta-Übersetzung

Diese Seite wurde von PageTurner AI übersetzt (Beta). Nicht offiziell vom Projekt unterstützt. Fehler gefunden? Problem melden →

  • options - Optionen, die zur Erstellung dieser DataSource verwendet wurden. Weitere Informationen zu DataSource-Optionen.
const dataSourceOptions: DataSourceOptions = dataSource.options
  • isInitialized - Gibt an, ob die DataSource initialisiert wurde und die erste Verbindung/Verbindungspool zur Datenbank aufgebaut wurde oder nicht.
const isInitialized: boolean = dataSource.isInitialized
  • driver - Der zugrundeliegende Datenbanktreiber, der in dieser DataSource verwendet wird.
const driver: Driver = dataSource.driver
  • manager - Der EntityManager, der zur Arbeit mit Entitäten verwendet wird. Weitere Informationen zum Entity Manager und zu Repositories.
const manager: EntityManager = dataSource.manager
// you can call manager methods, for example find:
const users = await manager.find()
  • mongoManager - Der MongoEntityManager, der zur Arbeit mit Entitäten in MongoDB-DataSources verwendet wird. Weitere Informationen zum MongoEntityManager findest du in der MongoDB-Dokumentation.
const manager: MongoEntityManager = dataSource.mongoManager
// you can call manager or mongodb-manager specific methods, for example find:
const users = await manager.find()
  • initialize - Initialisiert die DataSource und öffnet den Verbindungspool zur Datenbank.
await dataSource.initialize()
  • destroy - Zerstört die DataSource und schließt alle Datenbankverbindungen. Normalerweise rufst du diese Methode auf, wenn deine Anwendung herunterfährt.
await dataSource.destroy()
  • synchronize - Synchronisiert das Datenbankschema. Wenn synchronize: true in den DataSource-Optionen gesetzt ist, wird diese Methode aufgerufen. Normalerweise rufst du diese Methode beim Start deiner Anwendung auf.
await dataSource.synchronize()
  • dropDatabase - Löscht die Datenbank und alle darin enthaltenen Daten. Sei vorsichtig mit dieser Methode im Produktivbetrieb, da sie alle Datenbanktabellen und deren Daten unwiderruflich löscht. Kann nur verwendet werden, nachdem eine Verbindung zur Datenbank hergestellt wurde.
await dataSource.dropDatabase()
  • runMigrations - Führt alle ausstehenden Migrationen aus.
await dataSource.runMigrations()
  • undoLastMigration - Macht die zuletzt ausgeführte Migration rückgängig.
await dataSource.undoLastMigration()
  • hasMetadata - Prüft, ob Metadaten für eine gegebene Entität registriert sind.
if (dataSource.hasMetadata(User))
const userMetadata = dataSource.getMetadata(User)
  • getMetadata - Ruft die EntityMetadata der gegebenen Entität ab. Du kannst auch einen Tabellennamen angeben – wenn Entitätsmetadaten mit diesem Tabellennamen gefunden werden, werden sie zurückgegeben.
const userMetadata = dataSource.getMetadata(User)
// now you can get any information about User entity
  • getRepository - Ruft das Repository der gegebenen Entität ab. Du kannst auch einen Tabellennamen angeben – wenn ein Repository für diese Tabelle gefunden wird, wird es zurückgegeben. Weitere Informationen zu Repositories.
const repository = dataSource.getRepository(User)
// now you can call repository methods, for example find:
const users = await repository.find()
  • getTreeRepository - Ruft das TreeRepository der gegebenen Entität ab. Du kannst auch einen Tabellennamen angeben – wenn ein Repository für diese Tabelle gefunden wird, wird es zurückgegeben. Weitere Informationen zu Repositories.
const repository = dataSource.getTreeRepository(Category)
// now you can call tree repository methods, for example findTrees:
const categories = await repository.findTrees()
  • getMongoRepository - Ruft das MongoRepository der gegebenen Entität ab. Dieses Repository wird für Entitäten in MongoDB-DataSources verwendet. Weitere Informationen zur MongoDB-Unterstützung.
const repository = dataSource.getMongoRepository(User)
// now you can call mongodb-specific repository methods, for example createEntityCursor:
const categoryCursor = repository.createEntityCursor()
const category1 = await categoryCursor.next()
const category2 = await categoryCursor.next()
  • transaction - Bietet eine einzelne Transaktion, in der mehrere Datenbankanfragen in einer einzigen Datenbanktransaktion ausgeführt werden. Weitere Informationen zu Transaktionen.
await dataSource.transaction(async (manager) => {
// NOTE: you must perform all database operations using given manager instance
// its a special instance of EntityManager working with this transaction
// and don't forget to await things here
})
  • query - Führt eine rohe SQL-Abfrage aus.
const rawData = await dataSource.query(`SELECT * FROM USERS`)

// You can also use parameters to avoid SQL injection
// The syntax differs between the drivers

// aurora-mysql, better-sqlite3, capacitor, cordova,
// expo, mariadb, mysql, nativescript, react-native,
// sap, sqlite, sqljs
const rawData = await dataSource.query(
"SELECT * FROM USERS WHERE name = ? and age = ?",
["John", 24],
)

// aurora-postgres, cockroachdb, postgres
const rawData = await dataSource.query(
"SELECT * FROM USERS WHERE name = $1 and age = $2",
["John", 24],
)

// oracle
const rawData = await dataSource.query(
"SELECT * FROM USERS WHERE name = :1 and age = :2",
["John", 24],
)

// spanner
const rawData = await dataSource.query(
"SELECT * FROM USERS WHERE name = @param0 and age = @param1",
["John", 24],
)

// mssql
const rawData = await dataSource.query(
"SELECT * FROM USERS WHERE name = @0 and age = @1",
["John", 24],
)
  • sql - Führt eine rohe SQL-Abfrage mit Template-Literalen aus.
const rawData =
await dataSource.sql`SELECT * FROM USERS WHERE name = ${"John"} and age = ${24}`

Mehr zur Verwendung der SQL-Tag-Syntax.

  • createQueryBuilder - Erstellt einen Query Builder, der zum Erstellen von Abfragen verwendet werden kann. Weitere Informationen zum QueryBuilder.
const users = await dataSource
.createQueryBuilder()
.select()
.from(User, "user")
.where("user.name = :name", { name: "John" })
.getMany()
  • createQueryRunner - Erstellt einen Query Runner, der zur Verwaltung einer einzelnen realen Datenbank-DataSource verwendet wird. Weitere Informationen zum QueryRunner.
const queryRunner = dataSource.createQueryRunner()

// you can use its methods only after you call connect
// which performs real database connection
await queryRunner.connect()

// .. now you can work with query runner and call its methods

// very important - don't forget to release query runner once you finished working with it
await queryRunner.release()