@wearesage/schema
    Preparing search index...

    Interface DatabaseAdapter

    Interface for all database adapters

    interface DatabaseAdapter {
        type: string;
        delete<T>(entityType: Type<T>, id: string | number): Promise<void>;
        query<T>(entityType: Type<T>, criteria: object): Promise<T>;
        queryMany<T>(entityType: Type<T>, criteria: object): Promise<T[]>;
        runNativeQuery<T>(query: string, params?: any): Promise<T>;
        save<T extends object>(entity: T): Promise<void>;
    }

    Implemented by

    Index

    Properties

    type: string

    Name of the database type (Neo4j, MongoDB, PostgreSQL, etc.)

    Methods

    • Deletes an entity from the database

      Type Parameters

      • T

      Parameters

      • entityType: Type<T>

        The entity class

      • id: string | number

        The entity ID

      Returns Promise<void>

      Promise resolving when delete is complete

    • Executes a query against the database

      Type Parameters

      • T

      Parameters

      • entityType: Type<T>

        The entity class

      • criteria: object

        Query criteria

      Returns Promise<T>

      Promise resolving to entity or null

    • Executes a query returning multiple results

      Type Parameters

      • T

      Parameters

      • entityType: Type<T>

        The entity class

      • criteria: object

        Query criteria

      Returns Promise<T[]>

      Promise resolving to array of entities

    • Executes a native query specific to this database

      Type Parameters

      • T

      Parameters

      • query: string

        The native query string

      • Optionalparams: any

        Parameters to substitute in the query

      Returns Promise<T>

      Promise resolving to query results

    • Saves an entity to the database

      Type Parameters

      • T extends object

      Parameters

      • entity: T

        The entity to save

      Returns Promise<void>

      Promise resolving when save is complete