class MySqlServerPersistence(IdentifiableJsonSqlServerPersistence):
def __init__(self):
super(MySqlServerPersistence, self).__init__('mydata_json')
def _define_schema(self):
# clear all previously autogenerated schemas
self._clear_schema()
# create a table
self._ensure_table()
self._ensure_schema(
'ALTER TABLE `' + self._table_name + '` ADD `data_key` VARCHAR(50) AS (JSON_UNQUOTE(`data`->"$.key"))')
# create an index
self._ensure_index(self._table_name + '_json_key', {"data_key": 1}, {'unique': True})
def get_one_random(self, context: Optional[IContext], filter: Any) -> MyData:
return super().get_one_random(context, filter)
def get_list_by_filter(self, context: Optional[IContext], filter: Any, sort: Any, select: Any) -> List[MyData]:
return super().get_list_by_filter(context, filter, sort, select)
def get_count_by_filter(self, context: Optional[IContext], filter: Any) -> int:
return super().get_count_by_filter(context, filter)
def get_page_by_filter(self, context: Optional[IContext], filter: Any, paging: PagingParams, sort: Any, select: Any) -> DataPage:
return super().get_page_by_filter(context, filter, paging, sort, select)