API di DataSource
Traduzione Beta Non Ufficiale
Questa pagina è stata tradotta da PageTurner AI (beta). Non ufficialmente approvata dal progetto. Hai trovato un errore? Segnala problema →
options- Opzioni utilizzate per creare questo dataSource. Ulteriori informazioni sulle Opzioni di DataSource.
const dataSourceOptions: DataSourceOptions = dataSource.options
isInitialized- Indica se il DataSource è stato inizializzato e se la connessione iniziale / pool di connessioni con il database è stata stabilita o meno.
const isInitialized: boolean = dataSource.isInitialized
driver- Driver del database sottostante utilizzato in questo dataSource.
const driver: Driver = dataSource.driver
manager-EntityManagerutilizzato per lavorare con le entità. Ulteriori informazioni su Entity Manager e Repository.
const manager: EntityManager = dataSource.manager
// you can call manager methods, for example find:
const users = await manager.find()
mongoManager-MongoEntityManagerutilizzato per lavorare con le entità per dataSource MongoDB. Per maggiori informazioni su MongoEntityManager consultare la documentazione MongoDB.
const manager: MongoEntityManager = dataSource.mongoManager
// you can call manager or mongodb-manager specific methods, for example find:
const users = await manager.find()
initialize- Inizializza il dataSource e apre il pool di connessioni al database.
await dataSource.initialize()
destroy- Distrugge il DataSource e chiude tutte le connessioni al database. Generalmente si chiama questo metodo quando l'applicazione viene chiusa.
await dataSource.destroy()
synchronize- Sincronizza lo schema del database. Quandosynchronize: trueè impostato nelle opzioni del dataSource, viene chiamato questo metodo. Generalmente si chiama questo metodo all'avvio dell'applicazione.
await dataSource.synchronize()
dropDatabase- Elimina il database e tutti i suoi dati. Prestare attenzione con questo metodo in produzione poiché cancellerà tutte le tabelle del database e i relativi dati. Può essere utilizzato solo dopo aver stabilito la connessione al database.
await dataSource.dropDatabase()
runMigrations- Esegue tutte le migrazioni in sospeso.
await dataSource.runMigrations()
undoLastMigration- Annulla l'ultima migrazione eseguita.
await dataSource.undoLastMigration()
hasMetadata- Verifica se i metadati per una determinata entità sono registrati.
if (dataSource.hasMetadata(User))
const userMetadata = dataSource.getMetadata(User)
getMetadata- Ottiene l'EntityMetadatadell'entità specificata. È possibile specificare anche un nome di tabella: se viene trovata una metadati di entità con quel nome, verrà restituita.
const userMetadata = dataSource.getMetadata(User)
// now you can get any information about User entity
getRepository- Ottiene ilRepositorydell'entità specificata. È possibile specificare anche un nome di tabella: se viene trovato un repository per quella tabella, verrà restituito. Ulteriori informazioni sui Repository.
const repository = dataSource.getRepository(User)
// now you can call repository methods, for example find:
const users = await repository.find()
getTreeRepository- Ottiene ilTreeRepositorydell'entità specificata. È possibile specificare anche un nome di tabella: se viene trovato un repository per quella tabella, verrà restituito. Ulteriori informazioni sui Repository.
const repository = dataSource.getTreeRepository(Category)
// now you can call tree repository methods, for example findTrees:
const categories = await repository.findTrees()
getMongoRepository- Ottiene ilMongoRepositorydell'entità specificata. Questo repository è utilizzato per le entità in dataSource MongoDB. Ulteriori informazioni sul supporto MongoDB.
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- Fornisce una singola transazione in cui più richieste al database verranno eseguite in un'unica transazione. Ulteriori informazioni sulle Transazioni.
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- Esegue una query SQL raw.
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- Esegue una query SQL raw utilizzando template literals.
const rawData =
await dataSource.sql`SELECT * FROM USERS WHERE name = ${"John"} and age = ${24}`
Scopri la sintassi SQL Tag.
createQueryBuilder- Crea un query builder che può essere utilizzato per costruire query. Ulteriori informazioni sul QueryBuilder.
const users = await dataSource
.createQueryBuilder()
.select()
.from(User, "user")
.where("user.name = :name", { name: "John" })
.getMany()
createQueryRunner- Crea un query runner utilizzato per gestire e lavorare con un singolo dataSource reale del database. Ulteriori informazioni sul 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()