diff --git a/lib/MySQL/store.d.ts b/lib/MySQL/store.d.ts index 1619e8c..1bec12c 100644 --- a/lib/MySQL/store.d.ts +++ b/lib/MySQL/store.d.ts @@ -16,6 +16,7 @@ export declare class MysqlStore; constructor(storageSchema: StorageSchema, configuration: MySQLConfiguration); + checkRelationAsync>(entity: T, operation: Omit, context: Cxt): Promise; protected aggregateAbjointRowAsync>(entity: T, aggregation: ED[T]['Aggregation'], context: Cxt, option: OP): Promise>; aggregate(entity: T, aggregation: ED[T]['Aggregation'], context: Cxt, option: OP): Promise>; protected supportManyToOneJoin(): boolean; diff --git a/lib/MySQL/store.js b/lib/MySQL/store.js index a14d65a..9aa1f21 100644 --- a/lib/MySQL/store.js +++ b/lib/MySQL/store.js @@ -44,6 +44,9 @@ class MysqlStore extends CascadeStore_1.CascadeStore { this.connector = new connector_1.MySqlConnector(configuration); this.translator = new translator_1.MySqlTranslator(storageSchema); } + checkRelationAsync(entity, operation, context) { + throw new Error('Method not implemented.'); + } async aggregateAbjointRowAsync(entity, aggregation, context, option) { const sql = this.translator.translateAggregate(entity, aggregation, option); const result = await this.connector.exec(sql, context.getCurrentTxnId()); diff --git a/lib/sqlTranslator.js b/lib/sqlTranslator.js index 28204de..a3a3720 100644 --- a/lib/sqlTranslator.js +++ b/lib/sqlTranslator.js @@ -635,7 +635,7 @@ class SqlTranslator { */ const joinFilter = { $expr83: { - [['all', 'not all'].includes(predicate) ? '$ne' : '$eq']: [ + '$eq': [ { '#attr': fk, }, @@ -655,7 +655,9 @@ class SqlTranslator { data: { id: 1, }, - filter: (0, filter_1.combineFilters)(subEntity, this.schema, [joinFilter, filter2[attr]]), + filter: (0, filter_1.combineFilters)(subEntity, this.schema, [joinFilter, { + $not: filter2[attr], + }]), indexFrom: 0, count: 1, }, currentNumber, filterRefAlias, option); diff --git a/src/MySQL/store.ts b/src/MySQL/store.ts index 8080536..50a23e9 100644 --- a/src/MySQL/store.ts +++ b/src/MySQL/store.ts @@ -53,6 +53,9 @@ export class MysqlStore>(entity: T, operation: Omit, context: Cxt): Promise { + throw new Error('Method not implemented.'); + } protected async aggregateAbjointRowAsync>(entity: T, aggregation: ED[T]['Aggregation'], context: Cxt, option: OP): Promise> { const sql = this.translator.translateAggregate(entity, aggregation, option); const result = await this.connector.exec(sql, context.getCurrentTxnId()); diff --git a/src/sqlTranslator.ts b/src/sqlTranslator.ts index 50f13b7..e037330 100644 --- a/src/sqlTranslator.ts +++ b/src/sqlTranslator.ts @@ -810,7 +810,7 @@ export abstract class SqlTranslator { */ const joinFilter = { $expr83: { - [['all', 'not all'].includes(predicate) ? '$ne' : '$eq']: [ + '$eq': [ { '#attr': fk, }, @@ -831,7 +831,9 @@ export abstract class SqlTranslator { data: { id: 1, }, - filter: combineFilters(subEntity, this.schema, [joinFilter, filter2[attr]]), + filter: combineFilters(subEntity, this.schema, [joinFilter, { + $not: filter2[attr], + }]), indexFrom: 0, count: 1, }, currentNumber, filterRefAlias, option);