diff --git a/packages/core/database/src/database.ts b/packages/core/database/src/database.ts index 2fe22632d..17602d08e 100644 --- a/packages/core/database/src/database.ts +++ b/packages/core/database/src/database.ts @@ -390,20 +390,24 @@ export class Database extends EventEmitter implements AsyncEmitter { this.on('afterRepositoryFind', ({ findOptions, dataCollection, data }) => { if (dataCollection.isParent()) { for (const row of data) { - const rowCollectionName = this.tableNameCollectionMap.get( + const rowCollection = this.tableNameCollectionMap.get( findOptions.raw ? `${row['__schemaName']}.${row['__tableName']}` : `${row.get('__schemaName')}.${row.get('__tableName')}`, - ).name; + ); - if (!rowCollectionName) { - throw new Error( - `Can not find collection by table name ${rowCollectionName}, current collections: ${Array.from( + if (!rowCollection) { + this.logger.warn( + `Can not find collection by table name ${JSON.stringify(row)}, current collections: ${Array.from( this.tableNameCollectionMap.keys(), ).join(', ')}`, ); + + return; } + const rowCollectionName = rowCollection.name; + findOptions.raw ? (row['__collection'] = rowCollectionName) : row.set('__collection', rowCollectionName, {