Creates a new instance of the persistence component.
The MySQL connection pool object.
The MySQL connection component.
The MySQL database name.
The dependency resolver.
The logger.
The MySQL table object.
Adds index definition to create it on opening
DML statement to autocreate database object
Clears component state.
(optional) transaction id to trace execution through call chain.
callback function that receives error or null no errors occured.
Closes component and frees used resources.
(optional) transaction id to trace execution through call chain.
callback function that receives error or null no errors occured.
Configures component by passing configuration parameters.
configuration parameters to be set.
Convert object value from public to internal format.
an object in public format to convert.
converted object in internal format.
Converts the given object from the public partial format.
the object to convert from the public partial format.
the initial object.
Converts object value from internal to public format.
an object in internal format to convert.
converted object in public format.
Creates a data item.
an item to be created.
(optional) callback function that receives created item or error.
Deletes data items that match to a given filter.
This method shall be called by a public deleteByFilter method from child class that receives FilterParams and converts them into a filter function.
(optional) transaction id to trace execution through call chain.
(optional) a filter JSON object.
(optional) callback function that receives error or null for success.
Deleted a data item by it's unique id.
an id of the item to be deleted
(optional) callback function that receives deleted item or error.
Deletes multiple data items by their unique ids.
(optional) transaction id to trace execution through call chain.
ids of data items to be deleted.
(optional) callback function that receives error or null for success.
Adds index definition to create it on opening
index keys (fields)
index options
Generates a list of column names to use in SQL statements like: "column1,column2,column3"
an array with column values or a key-value map
a generated list of column names
Generates a list of value parameters to use in SQL statements like: "$1,$2,$3"
an array with values or a key-value map
a generated list of value parameters
Generates a list of column sets to use in UPDATE statements like: column1=$1,column2=$2
a key-value map with columns and values
a generated list of column sets
Generates a list of column parameters
a key-value map with columns and values
a generated list of column values
Gets a number of data items retrieved by a given filter.
This method shall be called by a public getCountByFilter method from child class that receives FilterParams and converts them into a filter function.
(optional) transaction id to trace execution through call chain.
(optional) a filter JSON object
callback function that receives a data page or error.
Gets a list of data items retrieved by a given filter and sorted according to sort parameters.
This method shall be called by a public getListByFilter method from child class that receives FilterParams and converts them into a filter function.
(optional) transaction id to trace execution through call chain.
(optional) a filter JSON object
(optional) sorting JSON object
(optional) projection JSON object
callback function that receives a data list or error.
Gets a list of data items retrieved by given unique ids.
(optional) transaction id to trace execution through call chain.
ids of data items to be retrieved
callback function that receives a data list or error.
Gets a data item by its unique id.
(optional) transaction id to trace execution through call chain.
an id of data item to be retrieved.
callback function that receives data item or error.
Gets a random item from items that match to a given filter.
This method shall be called by a public getOneRandom method from child class that receives FilterParams and converts them into a filter function.
(optional) transaction id to trace execution through call chain.
(optional) a filter JSON object
callback function that receives a random item or error.
Gets a page of data items retrieved by a given filter and sorted according to sort parameters.
This method shall be called by a public getPageByFilter method from child class that receives FilterParams and converts them into a filter function.
(optional) transaction id to trace execution through call chain.
(optional) a filter JSON object
(optional) paging parameters
(optional) sorting JSON object
(optional) projection JSON object
callback function that receives a data page or error.
Checks if the component is opened.
true if the component has been opened and false otherwise.
Opens the component.
(optional) transaction id to trace execution through call chain.
callback function that receives error or null no errors occured.
Sets a data item. If the data item exists it updates it, otherwise it create a new data item.
a item to be set.
(optional) callback function that receives updated item or error.
Sets references to dependent components.
references to locate the component dependencies.
Unsets (clears) previously set references to dependent components.
Updates a data item.
an item to be updated.
(optional) callback function that receives updated item or error.
Updates only few selected fields in a data item.
an id of data item to be updated.
a map with fields to be updated.
callback function that receives updated item or error.
Generated using TypeDoc
Abstract persistence component that stores data in MySQL and implements a number of CRUD operations over data items with unique ids. The data items must implement IIdentifiable interface.
In basic scenarios child classes shall only override getPageByFilter, getListByFilter or deleteByFilter operations with specific filter function. All other operations can be used out of the box.
In complex scenarios child classes can implement additional operations by accessing
this._collection
andthis._model
properties.Configuration parameters
References
*:logger:*:*:1.0
(optional) ILogger components to pass log messages components to pass log messages*:discovery:*:*:1.0
(optional) IDiscovery services*:credential-store:*:*:1.0
(optional) Credential stores to resolve credentialsExample
class MyMySqlPersistence extends IdentifiableMySqlPersistence<MyData, string> { public constructor() { base("mydata", new MyDataMySqlSchema()); } private composeFilter(filter: FilterParams): any { filter = filter || new FilterParams(); let criteria = []; let name = filter.getAsNullableString('name'); if (name != null) criteria.push({ name: name }); return criteria.length > 0 ? { $and: criteria } : null; } public getPageByFilter(correlationId: string, filter: FilterParams, paging: PagingParams, callback: (err: any, page: DataPage<MyData>) => void): void { base.getPageByFilter(correlationId, this.composeFilter(filter), paging, null, null, callback); } } let persistence = new MyMySqlPersistence(); persistence.configure(ConfigParams.fromTuples( "host", "localhost", "port", 27017 )); persitence.open("123", (err) => { ... }); persistence.create("123", { id: "1", name: "ABC" }, (err, item) => { persistence.getPageByFilter( "123", FilterParams.fromTuples("name", "ABC"), null, (err, page) => { console.log(page.data); // Result: { id: "1", name: "ABC" } persistence.deleteById("123", "1", (err, item) => { ... }); } ) });