class MyMySqlPersistence
extends IdentifiableJsonMySqlPersistence<MyData, String> {
MyMySqlPersistence() : super('mydata_json', null);
@override
void defineSchema_() {
// clear all previously autogenerated schemas
clearSchema();
// create a table
ensureTable_();
ensureSchema_('ALTER TABLE `' +
tableName_! +
'` ADD `data_key` VARCHAR(50) AS (JSON_UNQUOTE(`data`->"\$.key"))');
// create an index
ensureIndex_(tableName_! + '_json_key', {'data_key': 1}, {'unique': true});
}
Future<MyData?> getOneRandom(String correlationId, String filter) async {
return await super.getOneRandom_(correlationId, filter);
}
Future<List<MyData>> getListByFilter(
String correlationId, String filter, sort, select) async {
return await super.getListByFilter_(correlationId, filter, sort, select);
}
Future<int> getCountByFilter(String correlationId, String filter) async {
return await super.getCountByFilter_(correlationId, filter);
}
Future<DataPage<MyData>> getPageByFilter(String correlationId, String filter,
PagingParams paging, sort, select) async {
return await super
.getPageByFilter_(correlationId, filter, paging, sort, select);
}
}